Я пытаюсь найти подходящий шаблон для моделирования отношения «один ко многим» из нескольких таблиц в общую таблицу.
EntityA, EntityB and other entities have one or many GenericInfo.
Option1: These entities are different so I cannot use a super table to model the relationships like
Option2: And I don't want to lose referential integrity by removing the foreign key constrain from the GenericInfo table.
Option3: I am currently using association tables for relationship mapping.
Мне не нравится это решение, потому что в базе данных должно быть создано слишком много таблиц, вся цель которых - сохранить ссылки / отношения.
Option4: Another way I can think of is to create a mapping table with a single Id attribute like this,
Я хотел бы получить ваше экспертное мнение и вклад.
Спасибо,
Обновить
Васек, спасибо за комментарий.
Проблема, которую я пытаюсь решить, заключается в следующем: как установить объектно-реляционное сопоставление для реализации интерфейса, которая предоставляет коллекцию объектов?
Мы используем одну стратегию таблицы для каждого класса для сопоставления OR. Таким образом, каждая таблица в примере отображается из класса. Допустим, у нас есть следующие определения типов и таблицы (жаль, что я не могу размещать здесь дисграммы)
открытый интерфейс IGenericInfoProvider
{
GenericInfo [] GenericInfoArray {get; set;}
}
открытый класс BaseClassForA {} ------------------------------------------ --- Таблица BaseEntityForA
открытый класс BaseClassForB {} ------------------------------------- -------- Таблица BaseEntityForB
открытый класс ClassA: BaseClassForA, IGenericInfoProvider {} --- Таблица EntityA
открытый класс ClassB: BaseClassForB, IGenericInfoProvider {} --- Таблица EntityB
открытый класс GenericInfo {} ------------------------------------------------ ---- Таблица GenericInfo
Я пытаюсь смоделировать отношения «один ко многим» между EntityA / EntityB и GenericInfo. Подобные отношения довольно часто встречаются в нашей модели предметной области.
Option1 не считается, поскольку это приводит к созданию супертаблица, включающая все идентификаторы из множества таблиц, и это не имеет никакого смысла в мире объектно-ориентированных приложений.
Option2 неприемлем из-за ссылочной целостности.
Option3 - это шаблон, который я использую в настоящее время.
Я рассматриваю Option4, но не уверен, это подход в правильном направлении.