Дизайн: смешанный XML / реляционный или чистый реляционный?

Допустимо ли моделировать очень сложный граф объектов с использованием XML в базе данных, но оставить остальную часть системы в реляционных таблицах?

Я хотел бы оценить мнение об этом, поскольку я натолкнулся на небольшую головоломку.

Большое спасибо

--------------------

Фон

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

В частности, пользователи будут работать в контексте объекта "Проект", который будет содержать различные дочерние объекты и списки. Пользователи смогут добавлять формулы в различные части этого графа объектов, и они будут постоянно пересчитываться в режиме реального времени.

Сложность состоит из двух частей:

  1. Независимо от того, где в иерархии классов находится формула, она сможет получить доступ к любой другой части той же родительской сущности проекта, используя синтаксис, похожий на путь. Это будет включать результаты других формул, и я буду реализовывать все это с помощью дерева зависимостей в памяти на среднем уровне.

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

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

технологии

  • SQL Server 2012.
  • .Net 4.5 (через C#)
  • Entity Framework (сначала база данных) на среднем уровне
  • Простые автоматически генерируемые DTO над WCF для сервисов
  • WPF с Призмой на клиенте.

Я не рассматривал идеи хранения NoSQL, в основном потому, что у меня недостаточно опыта для проекта с жесткими сроками. Я также не рассматривал Entity Framework в первую очередь по той же причине.

0 ответов

Другие вопросы по тегам