Форум сайта python.su
Коллеги, подскажите, кто знает как лучше реализовать модель в Django для каталога компаний у которых могут быть филиалы:
Компания имеет основной адрес, телефон и т.д., для этого мы создаем примерно следующую модель:
class Company(models.Model): name... city... address... phone...
class Company(models.Model): name... city... address... phone...
class Filial(models.Model): name = models.ForeignKey(Company... city... address... phone...
class Company(models.Model):
Отредактировано Andrew82 (Сен. 3, 2015 16:04:16)
Офлайн
Я быдлокодер, поэтому добавил бы в модель Company поле head_office, где указывал бы id - головной организации. Если в поле null - значит сама организация головная.
Плюсы: дешево, сердито, можно в noSQL данные положить вроде Mongo или даже Redis.
Минусы: сторонники N-ой нормальной формы тухлыми яйцами закидают, возможно будут проблемы при кривом импорте/экспорте данных (если забудем про поле id), при кривом удаление организаций (если забудем про поле head_office) данные в этом поле будут невалидны.
Офлайн
Andrew82А почему не ManyToMany?
стоит ли вообще это делать через ForeignKey
Офлайн
FishHookчтоб модели лишние не плодить
А почему не ManyToMany?
Офлайн
Имеете в виду таблицы в БД? Модель то у вас как раз одна единственная будет. А они кушать просят что ли?
Отредактировано FishHook (Сен. 3, 2015 17:52:21)
Офлайн
FishHookнемного не пойму, что Вы предлагаете связать связью ManyToMany?
ManyToMany
Офлайн
Таблицу саму с собой, что такого?
Офлайн
Ну или FK таким же образом, зачем дополнительную модель то придумывать?
Офлайн