2015-11-11 6 views
0

Мне нужно разработать инвентарь программного обеспечения (с php и mysql), и я планирую модель данных/дизайн. Проблема заключается в том, что каждый поставщик программного обеспечения имеет другой тип лицензии с различным полем, поэтому это не так просто, как создание таблицы «лицензии».Шаблон лицензии mysql table

Моим лучшим решением до настоящего времени является создание таблицы «лицензий» и таблицы «шаблонов», каждая из которых содержит около 10 столбцов с именами от 1 до 10. В таблице лицензий содержатся данные, а в таблице шаблонов содержится имя столбца o для этих данных.

Есть ли лучший способ реализации этого?

+1

Если вам не нужно запускать запросы по этим данным, вы можете просто сериализовать его и выгрузить его в одном поле данных varchar – Steve

+0

Возможно, это сработает, хотя я заинтересован в решении, которое работает с запросами и является более нормализован. Это часть более крупной базы данных, и вы никогда не знаете, что вам нужно дальше :) –

+0

Задумались о таблице разных типов для каждой строки, которая определяет тип лицензии и, следовательно, конкретный шаблон? – IlGala

ответ

0

Если serializtion не вариант, то другой вариант будет ключевым расчетное значение:

Table: LicenceAttributes 

LicenceID | FieldName  | FieldValue 
1   | numberofusers | 5 
1   | cost   | 999 
2   | somethingelse | blah 

Как сериализации, это только Sutable дизайн, если поля genuinly разные accross все лицензии.

+0

Я думаю, что это путь, после прочтения этого: https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model –

+0

Да, 'EAV' thats description i was ищу мой мозг! – Steve

+0

вот еще обсуждение: http://dba.stackexchange.com/questions/15199/inventory-database-structure-when-inventory-items-have-varying-attributes –