Предположим, у меня есть таблица, представляющая класс супер, студентов. И затем у меня есть N таблиц, которые представляют собой подклассы этого объекта (спортсмены, музыканты и т. Д.). Как я могу выразить ограничение, так что студент должен быть смоделирован в одном (не более, не менее) подклассе?Поддержание целостности подкласса в реляционной базе данных
Разъяснения относительно комментариев:
- Это поддерживается вручную, а не через пакет ОРМ.
- Проект относится к синтаксису на SQL Server (но было бы неплохо увидеть общее решение)
- Возможно, это был не лучший пример. Есть несколько сценариев, которые мы можем рассмотреть в отношении подклассификации, и мне просто пришлось придумать этот пример ученика/спортсмена.
A) В истинно объектно-ориентированном варианте возможно, что суперкласс может существовать сам по себе и не нуждается в моделировании в любых подклассах.
B) В реальной жизни любой объект или учащийся может иметь несколько ролей.
C) В конкретном сценарии, который я пытался проиллюстрировать, требовалось, чтобы каждый объект был реализован только в одном подклассе. Подумайте над суперклассом как абстрактной реализацией или просто общими фактами из других классов или экземпляров объектов.
Спасибо всем за ваш вклад, особенно Билл.
Только для уточнения: вы управляете этим вручную или используете решение ORM, такое как спящий режим? – Uri 2008-12-01 23:38:31
Какую базу вы используете? Если вы используете PostgreSQL, у него есть наследование таблицы. – Elijah 2008-12-01 23:50:02
Мне любопытно, почему не может быть умным как спортсмен, так и новичок? – 2008-12-02 00:18:52