У меня есть «переменная» структура, которая будет помещена в таблицу DB. Под «переменной» я подразумеваю последовательность пар «поле / значение», в которой «вид» поля определяет тип значения, я точно не знаю порядок полей и не знаю, сколько раз поля могут повторяться. Иногда группа полей повторяется несколько раз (это фискальная модель).
Дополнительное требование: я должен отобразить эти переменные данные в формы веб-страницы, обрабатывая некоторые работы CRUD.
JQuery-UI, Struts 2, Hibernate. Предпочтительная СУБД: MySQL.
Решения, о которых я подумал:
- вертикальный стол. У меня могут возникнуть проблемы с производительностью, которые я мог бы решить с помощью материализованных представлений, которые «поворачивают» строки в столбцах, когда мне требуется массивный процесс обработки данных. Не зашло так далеко в этом направлении, поскольку оно кажется очень дорогим для разработки.
- Поля больших объектов. Упакуйте мои столбцы в один из них, возможно, с таблицей «сопоставления» для декодирования каждого столбца. Моя идея состоит в том, чтобы выдвигать доступные для поиска поля как «настоящие» столбцы, чтобы оставить в LOB только менее интересную группу данных и не создавать проблем с производительностью.
- или лучше 2a. Используйте xml внутри поля LOB. Это может быть полезно для более удобной упаковки / распаковки данных, особенно для отображения данных в веб-форму.
Что ты думаешь? И еще, есть ли способ создания автоматических представлений из полей XML? Или лучше сопоставить такие данные с веб-формой? Я подозреваю, что Hibernate Tools не будет работать ни в одном из описанных мной случаев.
Надеюсь, я все понял, это все еще немного сбивает с толку даже меня:)