我正在为django中的SaaS应用程序编写后端。需要一些关于架构的指导。 因此,该产品将提供两种产品:一种是所有用户将共享同一数据库的通用产品,另一种是具有专用数据库的优质产品。我如何计划将其翻译成django如下:
我现在看到的这个架构存在的问题:
请告知我整个架构。在走这条路之前我经历了很多文章和堆栈溢出帖子,但没有一个完全具体到django所以我不是100%自信。非常感谢提前。
答案 0 :(得分:0)
如果免费和高级产品的功能完全相同,您不需要任何代码重复。这当然是一个很大的中频,因为您可以在高级服务中添加额外的功能。
如果功能完全相同,那么您需要做的就是将所有新的高级数据库添加到settings.py并使用中间件来确定模型应与哪个数据库进行通信(使用using
属性),对于共享数据库,为每个表添加owner
列,记录该行的所有者是谁,以便您可以适当地过滤查询集。