У меня есть две таблицы: сотрудник и отдел. Они оба зависят друг от друга (менеджер отдела - это сотрудник. Каждый сотрудник работает в отделе). Итак, как я могу начать вставлять записи?двухстороннее отношение между двумя таблицами в mysql
ответ
Хотя это совершенно нормально для этого, т. Е. Таблицы с прямыми внешними ключами друг к другу, если отношения означают разные вещи, стоит потратить время, подумав о том, что это значит.
С точки зрения фактически делают вставки, можно упорядочить свои вставки, так что:
- Сначала необходимо создать отдел,
- Затем вы создаете Employee в пределах конкретного отдела
- И затем вы изменяете Департамент, чтобы установить идентификатор менеджера, чтобы указать на конкретного сотрудника.
Это может быть и не идеальным, но это вполне возможно, если поле менеджера отдела допускает нулевые значения.
Существует много, чтобы думать о том, чтобы получить это право, однако, и стоит записывать (или рисовать - искать схемы ER), различные отношения между сущностями в вашей модели, чтобы убедиться, что они такие, как вы ожидал бы.
Department has a Department Manager
Department Manager is an Employee
Employee has a Department
Это подразумевает три стола, один для Департамента, один для Департамента, один для Работника.
Таким образом, Департамент-менеджер является связующим звеном между Департаментом и Работником, который является нынешним Менеджером Департамента.
Если отдел сотрудников может меняться со временем, и вы должны иметь возможность отслеживать период, когда конкретный Сотрудник был конкретным Менеджером Департамента, тогда вы можете нормализовать и создать новую таблицу, скажем, EmployeeDepartment
, который отслеживает взаимоотношения сотрудника, находящегося в конкретном Департаменте, вместо того, чтобы иметь идентификатор отдела непосредственно в записи сотрудника.
Возможно, в итоге вы получите гораздо больше таблиц, чем при запуске, но модель в базе данных может оказаться более полезной.
Примечание: Вы можете написать эти отношения по-разному, я выбрал конкретный способ, но альтернатива ниже в равной степени действительна. Речь идет о модели того, как ваши данные подходят друг к другу, и о взаимоотношениях между различными объектами в вашей модели.
A Department has Employees
A Department has a Department Manager
A Department Manager is an Employee
- 1. Отношение MySQL между 3 таблицами
- 2. MySQL связь между двумя таблицами
- 3. SQL делает внутреннее отношение между двумя таблицами
- 4. условия MySQL между двумя таблицами
- 5. связь между двумя таблицами (MySQL)
- 6. Отношение между разделенными таблицами
- 7. OpenOffice Отношение между таблицами
- 8. hasManyToMany отношение с двумя таблицами
- 9. Запрос в MySQL между двумя таблицами
- 10. Агрегирование данных между двумя таблицами в MySQL
- 11. связь между двумя таблицами в MySQL
- 12. сравнить различия между двумя таблицами в mysql
- 13. Сохранение присвоений между двумя таблицами в MySQL
- 14. Отношение Laravel между 3 таблицами?
- 15. mysql отметьте уникальные записи между двумя таблицами
- 16. Как сохранить отношение между таблицами
- 17. Nhibernate ICreteria отношение между таблицами
- 18. Рассчитать сумму между двумя таблицами MySQL
- 19. MySQL вставки идентификатор сравнения между двумя таблицами
- 20. MySQL несколько столбцов отношения между двумя таблицами
- 21. Как создать связь между двумя таблицами MySQL
- 22. MySQL Внутренняя связь между двумя таблицами
- 23. MySQL Select Case - Сравнение между двумя таблицами
- 24. Link идентификаторы между двумя таблицами MySQL
- 25. Разница между двумя таблицами с использованием MySQL
- 26. Проверка согласованности Mysql между двумя таблицами
- 27. Сложный запрос MySQL между двумя таблицами
- 28. Mysql множественное соединение между двумя таблицами
- 29. Сравнение таблицы MySQL между двумя таблицами
- 30. MySql- Update, используя как между двумя таблицами
Что касается отношения корабля в пределах того же рабочего стола. (между идентификатором сотрудника и идентификатором руководителя) – user3057109
Множественные варианты выбора. У вас может быть прямая связь, т. е. это вполне справедливо для того, чтобы таблица имела внешний ключ для себя, но это зависит. Поскольку наблюдатели меняются со временем, и вы можете отслеживать это, может иметь смысл иметь отдельную таблицу Supervisor, которая отслеживает отношения между Сотрудниками. Существует множество способов его моделирования, и они имеют последствия как для того, как код для управления им должен быть написан, так и как структура данных будет выглядеть. Это честно зависит от детального понимания требований, которые вам необходимо выполнить. –