2010-08-03 7 views
2

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

отредактирован, чтобы попытаться прояснить мой бред:

В зависимости от типа «события», он может иметь такие параметры, как имя хост, порт, дата, имя службы, время сообщения, дайджест сертификата (массив байт) и т. д.

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

Я пытаюсь выяснить способ хранения параметров, которые будут иметь разные типы. Должен ли я кодировать их как некоторый строковый формат и вносить их в varchar(), а затем декодировать, когда я извлекаю параметры для события?

+0

Итак, вы говорите, что у вас всегда будет одинаковое количество параметров, но их типы будут разными? –

ответ

1

Хранение всего, так как varchar/string - плохая идея в моем скромном мнении. Если вам нужно хранить различные типы данных в базе данных, сохраните их с правильными типами. Таким образом, ваш уровень представления может иметь дело с форматированием.

+0

Итак, что бы вы предложили? Разделять таблицы для разных типов параметров? Проблема в том, что у меня будут разные типы данных, связанных с одним и тем же событием. Я не знаю, что доступно для сохранения информации типа, отличной от кодировки, до «общего» формата, а затем декодирования, когда я ее извлекаю. –

+0

@sdeer - Можете ли вы изменить свой исходный вопрос и добавить информацию, чтобы помочь нам понять ситуацию? Для меня до сих пор вы смотрите на какой-то EAV (значение атрибута Entity), но для Datatypes, и это просто звучит не так. – JonH

Смежные вопросы