@xTuMoHx

Как создать сущность с настраиваемыми параметрами?

Проектирую небольшое ПО для инвентаризации техники и лицензий, хочу спроектировать БД (реляционную) так,
чтобы была возможность хранения кастомных атрибутов (параметров).
Например для ПК хранить объем ХДД, ОЗУ; для принтеров название картриджей; для маршрутизаторов количество портов, итд
При анализе, пришел к выводу, что данные хранить нужно разного вида: даты, целые числа, флоат, булевые, строки.

Первая идея, которая пришла в голову - хранить значения в таблице в текстовом виде, плюс столбец означающий тип данных, и при каждом чтении из бд десериализировать в нужный тип. Сразу вижу накладные расходу по преобразованию данных, проблемы с сортировкой по значению

Вторая идея, подчеркнута из схемы Жиры, а именно
Custom fields:
6287bf838ad09196698481.png

https://developer.atlassian.com/server/jira/platfo...

Как видно из схемы, есть несколько столбцов для хранения данных своего типа, и столбец указывающий на нужный тип.
Из плюсов вижу что база не будет такой жирной как в первом варианте, но вижу сложности в проектировании ПО для работы с такой БД

Посоветуйте как поступить, может есть другие варианты?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019
Bigdata Engineer
Посмотри модель EAV. Может поможет.
Ответ написан
Комментировать
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Создать отдельные таблицы для каждого типа техники
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы