NULL-Werte
Es bedeutet auch, dass der Artikel 5 IDs einschließlich seiner eigenen hat. Dies alles verursacht Nullwerte (anscheinend ein großes Nein, nein, was ich verstehen kann), denn wenn Ort und Preis optional sind und nicht in einem Eintrag in der Artikeltabelle verwendet werden, habe ich dort einen Nullwert
Ich persönlich denke, dass dies eine Situation ist, in der NULL
Werte sind perfekt, und ich hätte keine Zweifel daran, dies in mein Datenbankdesign zu integrieren.
Ich habe gesehen, wie andere dasselbe ohne NULL
erreicht haben Werten besteht darin, einen Datensatz in den optionalen Tabellen (Ort und Preis in Ihrem Beispiel) mit einer ID von 0 zu erstellen, die bedeutet, dass es keinen verwandten Datensatz gibt - aber dies macht dem Entwickler der Anwendung nur 10-mal mehr Arbeit, um diese Datensätze herauszufiltern - Es ist WESENTLICH einfacher, eine Verknüpfung herzustellen, und wenn Sie keine Datensätze zurückbekommen, gibt es keine verknüpften Datensätze in der optionalen Tabelle.
Denken Sie nur daran, ein LEFT
zu machen oder RIGHT OUTER
join, wenn Sie Item
zurückgeben möchten s unabhängig davon, ob sie einen Place
haben oder Price
verknüpft (Sie erhalten NULL
Werte in den optionalen Tabellenspalten für Item
s, die keine zugehörigen Datensätze haben) und ein INNER
beitreten, wenn Sie nur den Item
wollen ist das tun haben einen zugehörigen optionalen Datensatz.
Zusammengesetzte Schlüssel
Ein zusammengesetzter Schlüssel ist ein Schlüssel in einer Tabelle, die aus mehr als einer Spalte besteht. Wenn jede Ihrer Person
, Item
, Place
und Price
alle eine ID haben (auch wenn es nur eine automatisch inkrementierende Zahl ist), benötigen Sie keinen zusammengesetzten Schlüssel - nur eine Primärschlüsselspalte in jeder Tabelle und eine Fremdschlüsselspalte im Item
Tabelle für jede zugehörige Tabelle - z.B. item_id
, person_id
, place_id
, price_id
. Sie geben diesen Item
an hat eine eigene ID, daher sollten Sie keinen zusammengesetzten Schlüssel benötigen, sondern nur einen Primärschlüssel für die item_id
Spalte.