Какие отношения SQL здесь подходят? - PullRequest
2 голосов
/ 02 марта 2011

Приветствие

У меня есть три названные таблицы: человек, работник, клиент. Какие отношения SQL я должен использовать по следующему критерию: 1. Человек хранит предварительные данные двух других таблиц. 2. Ни один сотрудник не может быть клиентом.

Чтобы добавить больше, я проектирую это с MySQL.

Должен ли я использовать 1-1 или 1- * для отношений человек-> сотрудник и человек-> клиент? Ваш ответ высоко ценится.

Спасибо!

Ответы [ 3 ]

1 голос
/ 02 марта 2011

У вас в основном есть отношение 1- (0 или 1) между Person и двумя другими таблицами.Тот факт, что Клиент и Сотрудник являются взаимоисключающими, может быть реализован через триггеры.Вы можете посмотреть Раздел 3.6.3 этого объяснения типов отношений для получения дополнительной информации.Вот статья Википедии об эксклюзивных отношениях .

0 голосов
/ 02 марта 2011

Ваш случай выглядит как пример шаблона проектирования gen-spec. Для предыдущих обсуждений этого перейдите по ссылке. Это должно быть просто. Но как мне это спроектировать?

0 голосов
/ 02 марта 2011

Вот пример "tableinheritance" для sql-сервера, но также должен работать и для mysql: http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server

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