Как моделируемые подтипы ER реализуются в базе данных?
Извините, если это слишком просто, но я недавно нашел много документации по ER-моделированию, но, похоже, все это пропускает фактическую реализацию, и я просто хочу уточнить.
Является ли подтип просто второй таблицей с внешним ключом для супертипа вместе со свойствами, относящимися к подтипу? Во всяком случае, это то, что имеет для меня наибольшее значение. Первичный ключ подтипа, как правило, совместно используется с супертипом (первичный ключ подтипа имеет внешнее ограничение на супертип)?
1 ответ
Да, это один из трех способов сделать это.
Второй способ, и, возможно, самый простой, состоит в том, чтобы просто иметь значения в подтипе быть полями в супертипе, которые могут быть нулевыми. Это требует больше места, но увеличивает производительность, так как требует меньше запросов для получения данных подтипа.
Третий способ - создать таблицу для каждого типа / подтипа. Это эффективно, только если вы всегда знаете тип / подтип данных, которые вам нужно найти. Это также не требует так много места как второй путь.