Hodnoty NULL
To také znamená, že položka bude mít 5 ID včetně svého. To vše způsobuje hodnoty null (zřejmě velké ne ne, čemuž rozumím), protože pokud jsou místo a cena volitelné a nejsou použity u jedné položky tabulky položek, budu tam mít hodnotu null
Osobně si myslím, že toto je jedna situace, kdy NULL
hodnoty jsou perfektní a rozhodně bych nepochyboval o tom, že to začlením do návrhu své databáze.
Jedním ze způsobů, jak jsem viděl ostatní dosáhnout stejné věci bez NULL
hodnot je vytvořit záznam ve volitelných tabulkách (místo a cena ve vašem příkladu) s ID 0, což znamená, že neexistuje žádný související záznam - ale vývojáři aplikace tyto záznamy odfiltruje jen 10krát více práce - je mnohem snazší provést spojení a pokud nedostanete zpět žádné záznamy, ve volitelné tabulce nejsou žádné související záznamy.
Jen nezapomeňte udělat LEFT
nebo RIGHT OUTER
připojit, pokud chcete vrátit Item
s bez ohledu na to, zda mají Place
nebo Price
přidružené (dostanete NULL
hodnoty ve volitelných sloupcích tabulky pro Item
s, které nemají přidružené záznamy) a INNER
připojte se pouze chcete Item
to dělá mít přidružený volitelný záznam.
Složené klíče
Složený klíč je klíč v tabulce, která se skládá z více než jednoho sloupce. Pokud každý z vaší Person
, Item
, Place
a Price
všechny mají ID (i když je to jen automaticky se zvyšující číslo), nebudete potřebovat složený klíč – pouze sloupec primárního klíče v každé tabulce a sloupec cizího klíče v Item
tabulka pro každou související tabulku - např. item_id
, person_id
, place_id
, price_id
. Uvedete, že Item
má své vlastní ID, takže byste neměli potřebovat složený klíč – stačí primární klíč na item_id
sloupec.