Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > мапинг большого набора полей в базу


Автор: integral 5.3.2010, 21:28
господа!
имеем некую сущность А, являющуюся составной частью другой сущности С. В связи с этим в hibernate мапинге сущность А идет как компонент. Особеность сущности А в том, что все ее поля простые (большинство интовые) и что хуже - набор этих полей еще не утвержден и может на 50% изменится - а показывать чтото уже нада. В будущем изменения также возможныsmile Как лучше поступить: по красивому каждому полю выделить колонку в базе или пихать все в одну большую строку в базе? И если второй вариант - то в каком формате? Есть вариант JAXB - но xml создаст кучу лишних слов, или писать свой формат типа 1=value$$$2=value2$$$3=value3 и в анотациях к методам/полям дописывать какое поле - какая цифра в таком формате и т.д.
Поиск по полям сущности А исключен
Спасибо за рекомендации

Автор: MaxPayneC 5.3.2010, 21:42
Цитата(integral @  5.3.2010,  21:28 Найти цитируемый пост)
Как лучше поступить: по красивому каждому полю выделить колонку в базе или пихать все в одну большую строку в базе?

Я считаю, это должно главным образом зависеть от того, каков смысл этих полей, какую задачу решает ваша система.

Автор: mbasil 6.3.2010, 22:19
Если в базе структурирование сущности А не важно, можно создать одно двоичное поле и сериализовать туда целиком объект, а при запросе выполнять десериализацию  в объект. Это все же лучше, чем пихать в строку символов, а потом ее разбирать.

А если хочется все же в строку и XML неохота, то можно воспользоваться JSON форматом. Но на разборку строки все равно будут тратиться ресурсы изрядно. 

Автор: MisterCleric 9.3.2010, 10:49
Привет. А может вертикальную таблицу создать типа:
поле / значение / форинг кей на основную сущность
и тогда у тебя не будет проблем с изменением количества полей в дальнейшем. У тебя есть сущность и есть куча разнообразных динамических значений этой сущности. 
Представь себе немного, что можно любой поле таблицы представить в виде записи в другой таблице. На самом деле оно так и есть: имеется куча системных таблиц с описанием словаря всех остальных таблиц. Просто у тебя будет еще и значение данного поля в привязке к конкретной сущности.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)