@Innoel

Как спроектировать БД под проект на Django?

Задача стоит такая: продумать БД для сайта-CRM ь(бэкэнд - Джанга, СУБД - Постгрес), на котором каждый пользователь имеет свою таблицу услуг, таблицу клиентов (а всем известно, что у человека может быть несколько номеров и т.п., что порождает доп. таблицы) и т.д, но так же у него может быть несколько, скажем, компаний или филиалов компаний

Опыта в создании БД мало, поэтому возник такой вопрос: как это организовать правильно?
У меня возникли такие варианты, но я не могу определиться:
1) Создавать новую БД под каждого юзера, записывать все компании одного юзера туда
2) Создавать новую БД под каждую компанию (чтобы избежать ситуации с огромными связующими таблицами даже для простых задач).
3) Сливать всё в одну БД, но в таком случае меня пугает то, что эти таблицы в итоге будут достигать огромных размеров, всё это будет работать медленно и т.п., да и структура так получается гораздо сложнее, огромное количество связующих таблиц и так далее, чего, вроде как, можно избежать вторым вариантом

Возможно, это стоит реализовать вообще в другом ключе, какие есть идеи? Может, есть рекомендации, что почитать, чтоб разобраться в вопросе?

А теперь суть вопроса относительно Django, в Джанге использумые БД прописываются в конфиге сразу, как тогда реализовать такой подход? Возможно ли в Джанге организовать создание новой БД под каждого пользователя при регистрации? Или стоит использовать вообще другой подход или даже другой бэкэнд в целом?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@szelga
blog.antidasoftware.com/2017/07/saas-django-python...
традиционно предупреждаю о преждевременной оптимизации. если проект только начинается, можно, наверное, и без всего этого. потом уже, когда разрастётся, раскидать по базам.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
> каждый пользователь имеет свою таблицу услуг
совершенно лишнее. для всех пользователей одна таблица услуг, в которой принадлежность конкретному пользователю через колонку id пользователя.
> может быть несколько номеров и т.п., что порождает доп. таблицы
то же самое.
> 3) Сливать всё в одну БД
самый нормальный вариант.
Ответ написан
Ваш ответ на вопрос

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

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