2014-09-23 4 views
0

У меня есть следующий проект базы данных:Проектирование реляционных баз данных цикл

enter image description here

Я хочу, чтобы добавить новую таблицу с именем Задача, которая будет иметь отношение один-ко-многим с проектом (Project будет одна или несколько задач и конкретная задача будут принадлежать только одному проекту). Следующие пользователи также будут назначены для разных задач в проекте (в основном для таблицы пользователя требуется другое отношение многих к многим с задачей, но это создает цикл в дизайне). Является ли это хорошей практикой или мне следует избегать создания циклов в дизайне?

ответ

0

Следующая пользователи также будут назначены различные задачи в проекте (в основном таблица потребностей пользователей другой многие ко многим с задачей ...)

Наверное, нет.

Возможно, вам нужны только те пользователи, которые связаны с конкретным проектом, определенным для определенных задач. Таким образом, вам нужен внешний ключ от задач, чтобы ссылаться на пользователей проекта, что кажется как странно названная таблица «Project_userprojectrelation».

«Петли» - это неприятность, когда вам нужно каскадно обновлять или удалять. Но вы обычно можете удалять строки из «конца» или «среднего» цикла в направлении «сверху». Единственный раз, когда это не работает, - это когда у вас есть внешние ключи, преследующие друг друга вокруг цикла в одном направлении. Большинство dbms предупредит вас об этой проблеме.

Смежные вопросы