NULL-værdier
Det betyder også, at varen vil have 5 id'er inklusive sit eget. Alt dette forårsager null-værdier (tilsyneladende et stort nej nej, hvilket jeg kan forstå), for hvis sted og pris er valgfrie og ikke bruges på én indgang til genstandetabellen, vil jeg have en nulværdi der
Personligt tror jeg, at dette er en situation, hvor NULL
værdier er perfekte, og jeg ville bestemt ikke være i tvivl om at sætte dette ind i mit databasedesign.
På en måde har jeg set andre opnå det samme uden NULL
værdier er at oprette en post i de valgfrie tabeller (sted og pris i dit eksempel) med et ID på 0, der betyder, at der ikke er nogen relateret post - men dette gør bare 10 gange mere arbejde for udvikleren af applikationen at filtrere disse poster fra - det er LANGT nemmere at deltage, og hvis du ikke får nogen poster tilbage, er der ingen relaterede poster i den valgfri tabel.
Bare husk at lave en LEFT
eller RIGHT OUTER
deltag, hvis du vil returnere Item
s, uanset om de har et Place
eller Price
tilknyttet (du får NULL
værdier i de valgfri tabelkolonner for Item
s, der ikke har tilknyttede poster) og en INNER
deltage, hvis du kun ønsker Item
er det gør har en tilknyttet valgfri post.
Sammensatte nøgler
En sammensat nøgle er en nøgle i en tabel, der består af mere end én kolonne. Hvis hver af dine Person
, Item
, Place
og Price
alle har et id (selvom det kun er et automatisk stigningsnummer), du behøver ikke en sammensat nøgle - kun en primær nøglekolonne i hver tabel og en fremmednøglekolonne i Item
tabel for hver relateret tabel - f.eks. item_id
, person_id
, place_id
, price_id
. Du angiver det Item
har sit eget ID, så du skulle ikke have brug for en sammensat nøgle - kun en primær nøgle på item_id
kolonne.