Sagen wir, ich habe N Unternehmen (N < = 15). Jedes Unternehmen verkauft Äpfel. Ich möchte Apple-Eigenschaften in einer Datenbank speichern.Tabelle Design für ähnliche Produkte
Firma A beschreibt folgende Eigenschaften ihrer Früchte: type
, field1
, field2
,
Firma B - type
, field1
, field3
.
Für Unternehmen A und Feld type
gibt es 3 mögliche Werte: 1, 2 und 3. Für Unternehmen B sie 1 sind, 2 und 4 I max 10 möglichen Werte für das Feld type
insgesamt haben wird, rund 20 möglich Felder insgesamt und eine Unmenge von Einträgen für Apple-Eigenschaften. Wie sollen meine Tische aussehen?
Version 1: Erstellen Sie eine Enum für type
Feld, mit allen möglichen Werten zusammengeführt (1,2,3,4). Erstellen Sie die Tabelle apples
mit allen möglichen Feldern (type
, field1
, field2
, field3
).
Version 2: Erstellen Sie separate Enums für type
Feld für jede Firma. Erstellen Sie separate Tabellen für Apple-Eigenschaften für jede Firma.
Version 3: Das gleiche wie Version 2, aber gemeinsame Eigenschaften in nächste Tabelle verschieben.
Version 4: Vesion 1 + Tabelle type_config
sagen, welche type
Werte für jede Firma zulässig sind. Es würde company_id
Feld (fk zu irgendeiner Tabelle) und ein Feld mit möglichem Wert/oder fk zu diesem Wert haben.
Alle von ihnen scheinen mir schlecht. Was wäre die beste Lösung im wirklichen Leben?