17. december 2001 - 11:50Der er
20 kommentarer og 3 løsninger
DB-design med 2-deling af ordrer
Jeg har brug for at lave en db, hvor et produkt skal registres som en venteordre eller en okordre alt efter, om den findes på lager eller ej. Disse produkter købes af enten kernekunder eller alm.kunder
Som det ser ud nu har jeg bl.a. oprettet følgende tabeller:
Problemet er, at når jeg forsøger at oprette en ordrelinie i systemet, kan det ikke lade sig gøre, da den forventer, at den har ordrenr. i BÅDE okOrdre og venteOrdre.
Designet må jo så være forkert, men tanken bag at dele det op var, ikke at have nogle attributter som ikke blev udfyldte.
Jeg ville løse det med en tabel til ordrene og have et flag, som fortæller, om det er en venteordre eller en okordre (evt. benytte betalingsdato til det: Null betyder venteordre, udfyldt betyder okordre)
Why dont you have a flag (boolean) field in your Order table which indicates the \"status\" of the order, then you only need one order table and not two.
Dog har jeg lige et tillægsspørgsmål: Hvis jeg samler tabellerne, så kommer der jo nogle attributter, der ikke bliver udfyldt, da pointen i to-delingen var at undgå dette.
>>>terry Jeg har ingen problemer i Java-delen. Det er udelukkende et spørgsmål om et godt DB-design/at gemme data.
>>>terry & proaccess Hvis jeg splitter ikke-fælles data ud i en ekstra tabel, vil den så ikke kræve, at denne også bliver udfyldt (hvis man gennemtvinger referentiel integritet). Skal man blot lade være med at gennemtvinge dette?
\"godt DB-design/at gemme data.\" You only \"gem\" the fields you enter, this has nothing at all to do with, good dB design! You cant save information which you dont have, thats wht you have properties such as allow Nulls and \"ZERO LENGTH\" !
>>>terry Jeg er med på, at det ikke optager plads i db\'en, hvis man har en attribut i en tuppel, som man ikke udfylder.
Jeg ender formentlig op med din løsning (den har jo den bedste performance) - men da det er et studieprojekt, er jeg desværre nødt til at indtænke, at det skal være intuitivt forståeligt for lærer og censor (der kun kender til Java), hvorfor jeg roder lidt med proaccess\' left-join. Jeg har dog ikke helt styr på, hvordan jeg får den oprettet....
Mit første db-design var jo ikke ligefrem godt, da det ikke fungerede :)
Jeg ville glemme alt om den ekstra tabel, og så \"bare\" acceptere at der vil forekomme tomme tupler... Det er jo heller ikke imod Codd\'s normaliseringsregler at der eksisterer sådanne...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.