Как моделируемые подтипы ER реализуются в базе данных? - PullRequest
4 голосов
/ 23 июня 2009

Извините, если это слишком просто, но я недавно нашел много документации по ER-моделированию, но, похоже, все это пропускает фактическую реализацию, и я просто хочу уточнить.

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

1 Ответ

3 голосов
/ 23 июня 2009

Да, это один из трех способов сделать это.

Второй способ, и, возможно, самый простой, состоит в том, чтобы просто иметь значения в подтипе быть полями в супертипе, которые могут быть нулевыми. Это требует больше места, но увеличивает производительность, так как требует меньше запросов для получения данных подтипа.

Третий способ - создать таблицу для каждого типа / подтипа. Это эффективно, только если вы всегда знаете тип / подтип данных, которые вам нужно найти. Это также не требует так много места как второй путь.

...