Я разрабатываю базу данных, которая обрабатывает пользователей, учетные записи и проекты со следующими отношениями и ограничениями:
Другими словами, пользователь может сотрудничать во многих проектах одной и той же учетной записи. Но поскольку пользователь может принадлежать нескольким учетным записям, то пользователь может сотрудничать во многих проектах нескольких учетных записей. Это приводит меня к троичной взаимосвязиотношения:
После прочтения нескольких статей о преобразовании троичных отношений в бинарные я пришел к следующим эквивалентным отношениям:
Здесь возникает два вопроса:
] Является ли это преобразование правильным? Я обнаружил, что мне нужно добавить дополнительные проверки на уровне приложения для обработки вставок. Например, перед добавлением нового (Пользователь,Проект)
я должен убедиться, что пользователь принадлежит к той же учетной записи, к которой принадлежит проект.
Действительно ли необходимо устанавливать связь между Пользователем
и Пользователем
? Как только связь между Пользователем
и Проектом
добавлена, нельзя ли узнать, к какой учетной записи принадлежит пользователь, получив доступ к проекту?
Спасибо!!