【发布时间】:2017-01-25 08:00:04
【问题描述】:
我正在用 django 编写 SaaS 应用程序的后端。需要一些有关架构的指导。 因此,该产品将提供 2 种产品:一种是所有用户共享同一个数据库的通用产品,另一种是具有专用数据库的高级产品。我打算如何将其翻译成 django 如下:
- 在 django 项目中,将有一个用于公开发行的应用程序。
- 对于每个高级客户,都会有一个单独的应用程序。
- 每个应用程序都有相同的模型。
- 每个应用程序都与单独的数据库进行通信。使用:stackoverflow post 和 django documentation 实现了这一点
- 我将在项目的 views.py 中为所有 API 编写视图,而不是在任何应用程序中,并根据令牌决定与哪个应用程序的模型进行通信。
我现在看到的这个架构的问题:
- 在所有视图中,一旦高级客户数量增加,我将不得不编写大量条件语句。
- 新的高级客户的加入需要对代码进行大量更改。
- models.py 中所有不同应用程序的代码重复。但这几乎类似于每次高级客户注册时编写用于在新数据库中创建表的语句。评论?
请就整个架构给我建议。在采用这种方式之前,我浏览了很多文章和堆栈溢出帖子,但没有一个是完全针对 django 的,所以我不是 100% 有信心。非常感谢。
【问题讨论】: