phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Datenbankbeziehungen mit phpmyAdmin (zusammengesetzte Schlüssel)

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.