Я должен разработать инвентаризацию программного обеспечения (с php и mysql), и я планирую модель данных / дизайн. Проблема заключается в том, что у каждого поставщика программного обеспечения свой тип лицензии, с разными полями, так что это не так просто, как создать таблицу «лицензий».
Моим лучшим решением до сих пор является создание таблицы «лицензий» и таблицы «шаблонов», в каждом из которых содержится около 10 столбцов с именами от 1 до 10. Таблица лицензий содержит данные, а таблица шаблонов содержит столбец или имя поля для этих данных.
Есть ли лучший способ реализовать это?
Если сериализация не является опцией, тогда другой опцией будет дизайн значения ключа:
Table: LicenceAttributes
LicenceID | FieldName | FieldValue
1 | numberofusers | 5
1 | cost | 999
2 | somethingelse | blah
Подобно сериализации, это приемлемый дизайн, только если поля во всех лицензиях отличаются друг от друга.
Других решений пока нет …