Я пытаюсь создать приложение, которое должно помочь распределять работу среди сотрудников или добровольцев по нерегулярному графику в зависимости от их доступности.
Во всяком случае, вот мои модели и отношения между ними:
Users hasMany Jobs
Jobs belongTo Users
Users hasMany Availabilities
Availabilities belongTo Users
Jobs hasOne Periods
Periods belongTo Jobs
Availabilities hasOne Periods
Periods belongTo Availabilities
Проблема в том, что «Периоды» находятся на принимающей стороне двух отношений hasOne, и, если я не ошибаюсь, это то, что вы не можете сделать в CakePHP. Как лучше всего действовать в этой ситуации?
Возможно, вы также заметили тот факт, что «Работа» может быть назначена кому-то («Пользователь») или нет. Должен ли я отказаться от отношения и создать его после назначения задания или создать вымышленного пользователя, представляющего «никто» для неназначенных заданий?
Я бы опубликовал красивое изображение, но мне не хватает репутации, извините!
Вот ссылка .