当前位置: 首页 > 知识库问答 >
问题:

django中SaaS产品的后端架构

凤修为
2023-03-14

我正在为django中的SaaS应用程序编写后端。需要一些架构方面的指导。因此,该产品将有两种产品:一种是所有用户共享同一数据库的通用产品,另一种是带有专用数据库的高级产品。我计划如何将其翻译成django,如下所示:

  • 在django项目中,将有一个应用程序用于通用产品

我现在看到的这个架构的问题是:

  • 在所有的观点中,一旦优质客户的数量增加,我将不得不写很多有条件的陈述
  • 新的高级客户的加入需要相当多的代码更改
  • 模型中的代码复制。所有不同的应用程序。但这几乎与每次高级客户机注册时在新数据库中创建表时编写语句类似。评论

请给我一个整体的架构建议。在走这条路之前,我看了很多文章和堆栈溢出帖子,但是没有一篇是完全针对django的,所以我不是100%有信心。非常感谢。

共有1个答案

勾裕
2023-03-14

如果免费和高级产品的功能完全相同,你就不需要任何代码复制。这当然是一个很大的IF,因为很有可能你会在高级产品中添加额外的功能。

如果功能完全相同,则只需将任何新的高级数据库添加到设置中即可。py并使用中间件来确定模型应该与哪个数据库通信(使用using属性),对于共享数据库,向每个记录该行所有者的表添加一个所有者列,以便您可以适当地过滤查询集。

 类似资料:
  • 专注于引导前端工程师去主导团队高效协作,去引领团队规范化、工程化构建复杂系统的实践过程。 本章节的核心内容包括多角色低耦合的协作流程、协作规范、 多角度分析选择适合具体项目的技术解决方案、工程化的版本管理、系统构建案例分析。

  • 时间框架❤: 介绍某个产品的时候,可以使用时间框架,解决了那些用户的那些问题设计了什么功能。 例如搜索产品😀: 1.搜索前:主要是降低搜索难度,发现用户想要可能想要搜索的,甚至用户都不知道自己想要搜索的东西,(猜你想搜,热榜,搜索历史)。 2.搜索中:降低搜索难度(联想+搜索的下拉,语言搜索,图片搜索,搜索暗纹词等等),帮助用户进行搜索。 3.搜索后:通过召回和排序,结合算法特征,给用户结果页合

  • 美团 SaaS产品经理实习生一面 1. 自我介绍 2. 对产品经理的看法 3. 自身优势劣势 4. 以往产品相关经历深挖 5. 场景模拟-相关产品数据如日活和拉新突然大幅降低,会如何分析 6. 如何识别真需求和伪需求 7. 反问#实习生应该准时下班吗##23届找工作求助阵地##软件开发薪资爆料##我的实习求职记录#

  • 我正在做一个项目,没有开发应用程序的经验,我想用最好的和简单的方法来构建基于云的SaaS产品。 有人能告诉我应该使用哪个技术栈,哪个后端lang/框架,db,哪个云公司等吗?到目前为止,我只知道后端的php,但我想先学习js,然后再学习nodeJS,然后将其用于后端和db,我想使用mysql。 有些事情可能会影响你的答案,我其实并不期待将来会有太多流量。请说明考虑到这两种情况,预期流量非常低的应用

  • 这看起来像是一系列问题,但都与我们一直在构建的SaaS和基于PHP的应用程序有关。我们意识到我们的应用程序架构,并对其进行研究,以确保在进入生产之前遇到所有必要的技术,并且不会面临任何失败。! 为了支持SaaS,我们决定让我们的数据库成为多租户,每个客户都有自己的数据库。我的脑子里还想着下面的一系列问题。 > 如何提供定制SaaS多租户应用程序的能力,以满足各个租户的需求? 如何确保每个租户数据库

  • 如果知道是否存在一个解决以下问题的框架,那就太好了: 由于Spring Batch在一个Tomcat容器(1个java进程)中运行,因此任何作业/步骤中的任何小更新都将导致Tomcat服务器的重新启动。这将导致硬停止所有正在运行的作业,从而导致数据不完整/陈旧。 我想要的是:捆绑所有的jar,并将每个作业作为一个单独的进程运行。框架应该存储PID,并且应该能够根据需要管理(停止/强制终止)作业。这