Я работаю с большим проектом, в котором много объектов, представляющих простые (не связанные) значения. Иногда эти значения представляют собой одну строку, иногда две строки, иногда строку и int ...
В настоящее время у нас есть таблица «значений» в нашей реляционной базе данных, которая содержит столбцы: Id
, Category
, String1
, String2
..., Int1
, Int2
..., Double1
и т. Д. Это удобно, но беспорядочно.
Все значения обладают следующими свойствами:
- Каждый объект с одинаковым
Category
имеет одинаковые атрибуты (т. Е. Типизирован). - Никакие объекты не связаны (единственный ключ - это
Id
первичный ключ).
Как нам выбраться из этого беспорядка? На мой взгляд, у нас есть следующие варианты:
- Просто продолжайте добавлять столбцы по мере необходимости и забудьте о семантическом сопоставлении между таблицей и объектом. Просто накапливайте это.
- Создайте новую таблицу для каждого объекта значения. Это добавит в базу данных большое количество таблиц, большинство из которых будет иметь менее 6 строк. Меня беспокоит шум, который все эти дополнительные таблицы добавляют в базу данных.
- Разверните базу данных без схемы только для этих объектов (на самом деле это невозможно в наших сценариях развертывания).
- Создайте таблицу с
Id
,Category
столбцами и столбцом BLOBValue
и сериализуйте объекты значений в столбец значений. Это жизнеспособно?
Этот пост повторяет наши параметры. Есть ли какие-либо недостатки или подводные камни при использовании сериализации? Есть ли вариант, о котором я не знаю? Совет приветствую.