Я пишу бэкэнд для приложения SaaS в django. Необходимо руководствоваться архитектурой. Таким образом, у продукта будет 2 предложения: общий, где все пользователи будут использовать одну и ту же базу данных и премиум-версию с выделенной базой данных. Как я планирую перевести это на django, следующее:Бэкэнд-архитектура для продукта SaaS в django
- В рамках проекта django будет создано одно приложение для общего предложения.
- Для каждого премиального клиента будет отдельное приложение.
- У каждого приложения одинаковые модели.
- Каждое приложение связывается с отдельной базой данных. Достигнуто это с использованием: stackoverflow post и django documentation
- Я напишу виды для всех API-интерфейсов в view.py проекта, а не в любом приложении, и решите на основе токена, к которому подключаются модели приложения.
Проблемы, которые я вижу сейчас с этой архитектурой:
- Во всех взглядов, я должен буду писать много условных операторов, когда число клиентов увеличивается премиум.
- Для размещения новых клиентов премиум-класса требуется довольно много изменений кода.
- Дублирование кода в models.py всех различных приложений. Но это почти похоже на запись операторов для создания таблиц в новой базе данных каждый раз, когда подписывается премиальный клиент. Комментарии?
Просьба сообщить мне об архитектуре в целом. Я прошел через множество статей и столбиков переполнения, прежде чем идти этим путем, но ни один из них не был полностью специфичен для django, поэтому я не уверен на 100%. Большое спасибо заранее.