График работы для компаний, как лучше привязать таблицу?

Здравствуйте!

Есть модель Company с информацией о компании.

Нужно прикрутить график работы, к компаниям на сайте, как на фото:
6f820b5b2db24827871cb8ee58443fde.png

Понимаю что нужно добавить дополнительную таблицу Schedule (с полями: день недели, дата начало работы, дата окончания работы и перерывы).

Как лучше привязать Schedule к Company через manytomany или foreign key?
  • Вопрос задан
  • 385 просмотров
Пригласить эксперта
Ответы на вопрос 2
atomheart
@atomheart
Пишу на Python за карму и за деньги
Тут вам нужно исходить из задачи (по вопросу она не до конца ясна).
Если у вас у одной компании одно или несколько расписаний, то через Foreign Key. При этом у всех компаний будут свои экземпляры расписаний.
А если вам нужно сделать так, что у нескольких компаний должно быть общее расписание, то... тоже Foreign Key в модели компании :)

ManyToMany - это связь многие к многим, т.е. когда "у вас вообще ничего не понятно" и любая компания может иметь либо свое расписание, либо чужое, либо и то и другое.

... если я конечно же правильно понял вопрос)
Ответ написан
winordie
@winordie
Лучшая документация -- исходники
Главный минус использования m2m в данной ситуации в том что меняя расписание для одной компании оно будет меняться для других связанных с этой записью.
Тут нужно думать о сути объектов. Расписание не является самодостаточным, оно полностью зависит от компании.
Думаю не особо криминальным было бы даже сделать модель Расписание с 14 полями по типу день_недели_начало/конец.
Либо же как вы хотели таблица Schedule с полями день_недели, компания, начало, конец. При этом с контролем за уникальностью день_недели <==> компания.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы