At opdele disse data i separate kolonner er en meget god start (coma-separerede værdier er kætteri). Et "variabelt antal ejendomme" bør dog typisk modelleres som en one-to- mange forhold .
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
er en fremmednøgle
til main_entity.id
.
Tillykke, du er på rette vej, dette kaldes normalisering . Du er ved at nå den Første Normalform.
Vær dog opmærksom på, at disse egenskaber bør have en fornuftigt lignende karakter (dvs. alle telefonnumre eller adresser osv.). Må ikke falde ind i den mørke side (alias Entity-Attribute-Value anti-mønster ), og blive fristet til at smide alle egenskaber i samme tabel. Hvis du kan identificere flere typer attributter, skal du gemme hver type i en separat tabel.