grayz
Новичок
управление дополнительными полями
Суть вопроса как правильно (более эффективно) постоить работу с дополнительными полями.
есть "базовая таблица", например (в реальности больше полей) :
id | type | color | weight | created | modified
Но разные типы записей (выделяются по численному значению type) будут требовать дополнительные поля. Например, свойство (т.е. поле) "size" есть только у type=1 и т.п. Дополнительных полей будет около 10-15, типов до 5-7 (пока, может будет больше, но пропорция сохранится).
До сих пор у меня есть 2 варианта:
ВАРИАРНТ 1.
-создать таблицу "extra fields" в которые вносить название доп. полей, их принадлежность с определенному типу и может некторые другие их характеристики;
-создать таблицу "values of extra fields" в которой будет id записи из "базовой таблицы", id дополнительного поля и собственно значение.
ВАРИАРНТ 2.
-добавлять в "базовую таблицу" дополнительные поля для всех типов записей;
-создать таблицу "extra fields" в которую внести имена всех полей с "базовой таблицы" и тип к тоторому они относятся (общие поля будут с пустым значением) и с помощью ее отбирать нужные поля.
Господа профессионалы, скажите какой из этих вариантов более правильный/эффективный. Может есть другой путь?
Заранее спасибо!
Суть вопроса как правильно (более эффективно) постоить работу с дополнительными полями.
есть "базовая таблица", например (в реальности больше полей) :
id | type | color | weight | created | modified
Но разные типы записей (выделяются по численному значению type) будут требовать дополнительные поля. Например, свойство (т.е. поле) "size" есть только у type=1 и т.п. Дополнительных полей будет около 10-15, типов до 5-7 (пока, может будет больше, но пропорция сохранится).
До сих пор у меня есть 2 варианта:
ВАРИАРНТ 1.
-создать таблицу "extra fields" в которые вносить название доп. полей, их принадлежность с определенному типу и может некторые другие их характеристики;
-создать таблицу "values of extra fields" в которой будет id записи из "базовой таблицы", id дополнительного поля и собственно значение.
ВАРИАРНТ 2.
-добавлять в "базовую таблицу" дополнительные поля для всех типов записей;
-создать таблицу "extra fields" в которую внести имена всех полей с "базовой таблицы" и тип к тоторому они относятся (общие поля будут с пустым значением) и с помощью ее отбирать нужные поля.
Господа профессионалы, скажите какой из этих вариантов более правильный/эффективный. Может есть другой путь?
Заранее спасибо!