Podział tych danych na oddzielne kolumny to bardzo dobry początek (wartości oddzielone przecinkami są herezją). Jednak „zmienna liczba właściwości” powinna być zazwyczaj modelowana jako jeden do wiele relacji .
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
to klucz obcy
do main_entity.id
.
Gratulacje, jesteś na dobrej drodze, nazywa się to normalizacją . Niedługo osiągniesz Pierwszą postać normalną.
Pamiętaj jednak, że te właściwości powinny mieć sensownie podobny charakter (tj. wszystkie numery telefonów, adresy itp.). Nie wpadaj w ciemną stronę (czyli Antywzorzec Jednostka-Atrybut-Wartość ) i pokusić się o wrzucenie wszystkich właściwości do tej samej tabeli. Jeśli możesz zidentyfikować kilka typów atrybutów, przechowuj każdy typ w osobnej tabeli.