2013-04-10 3 views
0

У меня есть это отношение отношения обобщения между некоторыми классами в моей диаграмме классов. FirstClass как базовый класс с атрибутом Name, SecondClass как производным классом, который является базовым классом FirstClass, и имеет некоторые другие атрибуты и, наконец, ThirdClass, который является производным классом от SecondClass, и он также имеет некоторые другие атрибуты. ThirdClass как отношение отношения отношения с классом Widget, 1. *.Можно ли использовать идентификатор родительской таблицы вместо дочерней таблицы Id, когда дочерняя таблица должна помещать ее в другую таблицу.

enter image description here


Я использовал Регистрация стратегии, когда я хотел бы реализовать модель данных из диаграммы классов. поэтому FirstTable имеет свой Pk в SecondTable, а SecondTable имеет свой PK в ThirdTable. Как видите, Третья таблица должна иметь PK в классе Widget. И есть некоторые затраты, когда я хочу присоединиться к таблице виджета с третьей таблицей, потому что мне нужно получить имя из первой таблицы.

Является ли уместным, чтобы я прочитал Id из FirtTable (на самом деле это базовый класс) и поместил его в таблицу Widget?


ответ

1

Я думаю, что проблема в том, что если вы делаете, вы не можете предотвратить виджет быть связан с экземпляром FirstTable, который не является экземпляром ThirdTable.

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

В обоих случаях я бы посоветовал. Если стоимость соединения является проблемой для вас, вам следует рассмотреть возможность использования стратегии наследования «одна таблица».

+0

Steph: Каков ваш совет, если я хочу использовать стратегию Join, и мне нужно будет загрузить DropDownList с идентификатором ThirdTable (как я уже сказал, мне нужно поместить его в виджет) в качестве поля ValueMember и Name в FirstTable как DisplayMember? Как вы думаете, это вызовет меня в некоторых проблемах? –

+1

Нет, я не думаю, что у вас будут проблемы. Поскольку у вас возникнут проблемы с вашими подключениями, только если у вас есть БОЛЬШОЕ количество записей, такая большая сумма, которую вы не хотите отображать в DropDownList в любом случае. Я бы никогда не подумал о том, чтобы отображать тысячи записей в DropdownList, это слишком много. И тысячи ничего важного для запроса с двумя объединениями ... – Steph