Мне нужно сохранить набор сущностей, у которых есть несколько специализированных версий. У них есть некоторые общие свойства, но специализированные содержат свойства, специфичные для этой сущности.
Хранилище данных - это реляционная СУБД, и это не обсуждается :-) В частности, это Microsoft SQL Server 2005 .
Я мог легко создать таблицу для общих свойств, а затем таблицу для каждой из специализированных версий. Однако вполне вероятно, что позже в решение придется добавлять новые сущности, и я не хочу поддерживать одновременно объектную модель и схему базы данных.
Другая идея состоит в том, чтобы создать таблицу
reading(, extended_properties)
и сделать поле extended_properties
своего рода сериализацией расширенных свойств. Я думал либо JSON, либо XML. Скорее всего, я буду использовать ORM-фреймворк, но еще не решил. В любом случае объектное представление специализированной сущности из чтения
может предоставить словарь {extended_property_name, value}
, содержащий проанализированные пары ключ / значение из extended_properties
поле.
Из этого http://msdn.microsoft.com/en-us/library/ms345117 (SQL.90) .aspx Я понял, что поля XML в сочетании со схемами для них дают понятие типизированного XML внутри СУБД. Также, запросы, включающие XML-содержимое в поле extended_properties
, также могут учитывать это.
Отзыв о моих предложениях по решению, в первую очередь с чтением
таблица и сериализация расширенных свойств.
Кроме того, я понимаю, что это одно из ограничений реляционных СУБД по сравнению с хранилищами на основе ключей / значений. Однако, безусловно, должны быть некоторые методы моделирования, чтобы приспособиться к этому.
Любая обратная связь приветствуется!