Das Aufteilen dieser Daten in separate Spalten ist ein sehr guter Anfang (Koma-getrennte Werte sind eine Ketzerei). Eine „variable Anzahl von Eigenschaften“ sollte jedoch typischerweise als one-to- viele Beziehung .
CREATE TABLE main_entity (
id INT PRIMARY KEY,
other_fields INT
);
CREATE TABLE entity_properties (
main_entity_id INT PRIMARY KEY,
property_value INT,
FOREIGN KEY (main_entity_id) REFERENCES main_entity(id)
);
entity_properties.main_entity_id
ist ein Fremdschlüssel
zu main_entity.id
.
Herzlichen Glückwunsch, Sie sind auf dem richtigen Weg, das nennt sich Normalisierung . Sie sind dabei, die Erste Normalform. zu erreichen
Beachten Sie jedoch, dass diese Eigenschaften eine vernünftig ähnliche Natur haben sollten (dh alle Telefonnummern oder Adressen usw.). Fallen Sie nicht auf die dunkle Seite (alias ). Entity-Attribute-Value Anti-Pattern ), und seien Sie versucht, alle Eigenschaften in dieselbe Tabelle zu werfen. Wenn Sie mehrere Attributtypen identifizieren können, speichern Sie jeden Typ in einer separaten Tabelle.