Dividere questi dati in colonne separate è un ottimo inizio (i valori separati dal coma sono un'eresia). Tuttavia, un "numero variabile di proprietà" dovrebbe in genere essere modellato come un one-to- molte relazioni .
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
è una chiave straniera
a main_entity.id
.
Congratulazioni, sei sulla strada giusta, questa si chiama normalizzazione . Stai per raggiungere la First Normal Form.
Attenzione, tuttavia, queste proprietà dovrebbero avere una natura sensibilmente simile (ad es. tutti i numeri di telefono, o indirizzi, ecc.). Non cadere nel lato oscuro (aka the Anti-modello entità-attributo-valore ), ed essere tentato di inserire tutte le proprietà nella stessa tabella. Se riesci a identificare diversi tipi di attributi, archivia ciascun tipo in una tabella separata.