Наследование и дизайн базы данных - PullRequest
0 голосов
/ 03 июля 2011

Когда вы моделируете наследование через наследование таблиц классов отношений в модели базы данных, вы ...

1) Включаете атрибут (логическое значение для двух подтипов, строка для дополнительных подтипов)который определяет конкретный подтип каждой записи?

2) Включить эту идентификацию в качестве внешнего ключа в таблицу, содержащую описание всех возможных подтипов?

3) Ничего из вышеперечисленного и полагатьсяпри поиске методом проб и ошибок в подтаблицах, сколько раз это нужно?

1 Ответ

4 голосов
/ 03 июля 2011

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

Существует также таблица для подкласса модели, в которой у вас есть главная таблица с общими данными и дочерние таблицы для подклассов (данные полностью нормализованы), хотя работа с данными такого типасложнее, кроме случаев, когда возможно использование инструмента ORM, такого как NHibernate.

Не могли бы вы привести конкретный пример ситуации, которую вы решаете, потому что в этих случаях количество подклассов обычно известно заранее (например, BillingDetails -> CreditCard,BankAccount и т. Д ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...