Модель базы данных зависимых отношений - PullRequest
2 голосов
/ 31 августа 2010

Изображение делает больше справедливости, поэтому я начну с этого.Dependent Relation

Итак, в моей таблице Relation_Type у меня есть несколько разных типов (Владелец, Рецензент, Утверждающий и т. Д.).
В моей таблице Relation_Status у меня разные статусы 'для некоторых типов:

Reviwer: (в ожидании обратной связи, полученной обратной связи)
утверждающий: (в ожидании решения, одобрено, отклонено)

Моя проблема в том, что я не знаю, как обеспечить соблюдениеотношение, которое говорит , если тип отношения является обратной связью, ограничьте статус только статусом обратной связи '.
Прямо сейчас, как это моделируется, тип связи Обратная связь может иметь любой статус, который является логической несогласованностью.Кроме того, не все типы имеют статус.

Итак, есть ли какие-нибудь советы о том, как смоделировать это, чтобы оно обеспечивало зависимость?

Спасибо, Рауль

Ответы [ 3 ]

1 голос
/ 31 августа 2010

Вы можете создать другую таблицу TypeStatus(ID, Type_Id, Status_Id).Он будет иметь FK для таблицы _Type и _Status, а таблица _Relation будет иметь один FK для этой новой таблицы, а не два FK для существующих таблиц.Тогда я бы также удалил столбец _Type_Id из таблицы _Status.

0 голосов
/ 01 сентября 2010

Я бы удалил столбец Project_Resource_Relation_Type_Id из таблицы Project_Resource_Relation. Это удаляет отношение от Project_Resource_Relation до Project_Resource_Relation_Type.

Тип отношения уже связан с таблицей Project_Resource_Relation через таблицу Project_Resource_Relation_Status. Таблица Project_Resource_Relation_Status уже обеспечивает связь между типами и статусами.

0 голосов
/ 31 августа 2010

Возможно, вам нужен составной внешний ключ, который объединяет Status_Id с Type_Id.

...