В принципе, у меня будет 3 таблицы, которые имеют отношение. Это: users
, departments
и company
.Как структурировать эту реляционную базу данных
Проблема у меня есть это:
company
может иметь много отделовdepartment
может быть присоединен только к один компанииuser
может быть только частью один компания- A
user
может быть частью из многих отделов
Это, по существу, что таблица соотношение будет выглядеть следующим образом:
____________________
| | | | |
| | | | |
-------- -------------- -----------
| user | | department | | company |
-------- -------------- -----------
| | | | | | | |
| | | | | | | |
| ___________________ |
| |
| |
| |
_______________________________________
Вышеупомянутый кратному |
линии показывают вариант, так что «компания» выше, имеет 4 отделения и скоро.
Теперь мой вопрос в том, как мне структурировать таблицы отношений?
Должен ли я иметь user_departments
, user_company
и company_departments
столы?
Это было по существу выглядеть следующим образом:
--------------------
| user_departments |
--------------------------------
| id | user_id | department_id |
--------------------------------
----------------
| user_company |
-----------------------------
| id | user_id | company_id |
-----------------------------
-----------------------
| company_departments |
-----------------------------------
| id | company_id | department_id |
-----------------------------------
Или есть какие-либо другие альтернативы для меня, чтобы рассмотреть/внедрить вместо пути я иду, как это кажется, что это просто будет держать растущий комплекс?
Есть ли необходимость в отношениях между пользователем и компанией, если другие остаются? – KingOfAllTrades
@KingOfAllTrades Мне нужно знать, какая компания является пользователем, как правило, поскольку отдел не является постоянным, его можно просто удалить, если это необходимо – Darren
Из описания есть только * один * ** много-ко-многим ** отношений между 'user' и' department'. Другие ** отношения «один ко многим» ** могут быть реализованы путем добавления столбца внешнего ключа к таблице сущностей, например. добавьте столбец 'company_id' в таблицу' user' и таблицу 'department'. (Из трех таблиц, которые вы показываете, вам нужна только таблица 'user_department', вам не нужны два других.) – spencer7593