Хорошо, я буду откровенен с вами, ребята: я не совсем уверен, как мой проект управляется с помощью домена, но я начал с создания объектов Model и вообще игнорировал слой постоянства. Теперь у меня возникают трудности с выбором наилучшего способа построения таблиц в SQL Server для соответствия моделям.
Я создаю веб-приложение в ASP.NET MVC, хотя не думаю, что платформа имеет такое большое значение. У меня есть следующая иерархия объектной модели:
<b>Property</b> - has properties such as Address and Postcode
which have one or more
<b>Case</b> - inherits from PropertyObject
<b>Quote</b> - inherits from PropertyObject
which have one or more
<b>Message</b> - simple class that has properties Reference, Text and SentDate
У Case и Quote много похожих свойств, поэтому у меня также есть абстрактный базовый класс PropertyObject, от которого они наследуют. Поэтому Property имеет свойство Items типа List, которое может содержать объекты Case и Quote.
По сути, у меня может быть свойство, содержащее несколько цитат и дел, и множество сообщений, которые могут принадлежать любому из них.
PropertyObject имеет свойство Reference (и, следовательно, так же и Quote и Case), поэтому любой объект Message может быть связан обратно с Quote или Case его свойством Reference.
Я подумываю об использовании Entity Framework для ввода и вывода моих моделей из базы данных.
Вначале у меня были четыре таблицы: свойство, случай, цитата и сообщение.
Все они будут иметь свои собственные последовательные идентификаторы, а Дело и Предложение будут связаны обратно с Свойством полем PropertyID.
Единственный способ связать таблицу сообщений с таблицами Case и Quote - это иметь поля RelationID и RelationType, но нет очевидного способа сообщить серверу SQL, как работают эти отношения, поэтому я выиграл ' не имеет ссылочной целостности.
Есть идеи, предложения, помощь?
Спасибо,
Anthony