Я хочу реализовать концепцию один-ко-многим в своем приложении. Это сценарий: у меня есть две таблицы
(i). Лицо (ID, ИМЯ, ВОЗРАСТ, ОТДЕЛ)
(ii). Обязанности человека (ID, RESP'S)
Одно лицо может иметь более одной ответственности. Как мне реализовать здесь отношение 1-n ? На самом деле, я не понимаю правильных концепций для этого.
Мы будем благодарны за любые предложения или ссылки для понимания этой концепции.
Это отношение «один ко многим» можно интерпретировать простым английским языком следующим образом...
Человек имеет одну или несколько обязанностей,
И
Каждая обязанность принадлежит ровно одному человеку.
Теперь, в зависимости от того, какие rdbms вы используете, вы должны реализовать это как отношение внешнего ключа.
Сначала вам нужно добавить в RESPS столбец, указывающий на таблицу person.
Назовем этот новый столбец PERSON_ID.
Теперь мы можем объявить отношения, код может выглядеть примерно так;
ALTER TABLE [Responsibilities] ADD CONSTRAINT FOREIGN KEY (PERSON_ID)
REFERENCES [Person] (ID)
И это объявление ограничения внешнего ключа будет означать, что с этого момента вы не можете добавить ответственность, не указав человека, которому принадлежит эта ответственность.
Но вы все равно можете добавить человека без обязанностей (пока), так как в таблице людей нет ограничений.
Обратите внимание, что все это является академическим, так как в реальной жизни обязанности разделены.
Другими словами, лицо может иметь одну или несколько обязанностей, но каждая обязанность может принадлежать одному или нескольким лицам.
Это называется отношением «многие ко многим» и представляет собой хорошо известную проблему проектирования баз данных с четко определенным решением, которое я не буду сейчас рассматривать, поскольку оно не имеет отношения к вашему вопросу.