Trustmaster |
|
---|---|
По-научному поля вроде extra1-9 называются повторяющимися группами и нормализуются следующим образом. Допустим, у нас есть отношение (таблица) example, у которой есть обязательные поля id и name, а также может присутствовать некоторое количество дополнительных полей. В таком случае формируется 3 отношения: 1-е для исходной сущности, 2-е для перечня повторяющихся групп, 3-е для хранения значений повторяющихся групп:
CREATE TABLE example (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
);
CREATE TABLE extras (
id INT NOT NULL AUTO_INCREMENT,
parent_table VARCHAR(100) NOT NULL,
name VARCHAR(100) NOT NULL,
PRIMARY KEY(id),
KEY(parent_table)
);
CREATE TABLE extra_values (
extra INT NOT NULL REFERENCES extras(id),
value VARCHAR(255) NOT NULL,
KEY(extra)
);
May the Source be with you!
|