江西火电建设公司网站,网站建设公司 知乎,wordpress表单数据前台显示,做婚礼邀请函网站在公司做了一年的SaaS内核系统#xff0c;但是有些东西不知道能不能透露出来。我尽量在不透露一些敏感东西的情况下#xff08;这个度我无法把控#xff0c;只能是笼统了#xff09;#xff0c;将某些关于数据库方面的精髓传递出来。如果表达不畅#xff0c;请谅解。
前…在公司做了一年的SaaS内核系统但是有些东西不知道能不能透露出来。我尽量在不透露一些敏感东西的情况下这个度我无法把控只能是笼统了将某些关于数据库方面的精髓传递出来。如果表达不畅请谅解。
前面的两篇讲解了在传统系统和大数据量下的数据库设计应该注意的事项。
接下来需要换一种思路在SaaS系统中数据库应该如何进行设计。
与传统开发的思考点不同在SaaS中可能更多考虑的是数据隔离在这里考虑共享数据库共享数据表数据通用方面
租户id
既然是SaaS平台那么肯定是多租户的一个生态。那么在数据库层面一定要有一个字段来隔离数据。
这个字段在每个表都需要有且每一次数据库的操作都需要有该字段作为条件。
这一步数据安全的控制都放在了代码中所以安全性和隔离性都是要依赖编码的。
表的自增id
这个字段还是要有的但是强烈建议不要在删除行数据查询数据修改数据时使用到该字段因为该字段的单独操作会破坏掉数据的隔离性。也就是前面所说的所有的sql操作都要带上租户id再进行。
数据来源标识
作为SaaS平台在很多情况下不同的租户可能有一样的数据或者是通过某些编程或者是通过配置的方式通过一套标准数据生成了各个租户的数据。可以实现租户的自定义。
但是在某些情况下可能某个特性不需要租户进行自定义而是SaaS系统进行一个控制那么就需要一个标识来知道这个数据来源一致。
需要确定的是这个标识在这个租户下是唯一的。也就是说前面的自增id没有用但是这个标识和租户的id是可以唯一索引到一条数据的。
强烈建议使用租户id和数据的来源标识进行操作数据。
元数据
元数据用一句话就是描述数据的数据
在SaaS中存在着一些通用配置通过这些通用配置可以自由定义一些业务模型可以极其快速的实现业务需求。
这个元数据我正在公司负责这块但是可能不能透露。
简单的说几句元数据能用非关系型数据库就不要用关系型数据库。前期量级小的时候问题后面访问量压力很大。
其次通用的一些业务模型一定要抽取出来。元数据对业务来说是极其基础的存在的业务不应该感知到元数据的存在。业务感知的应该是元数据的一些业务组合也就是业务模型。
通过组装业务模型可以配合不同的业务场景最后实现业务功能。
租户数据
租户的数据是基于一些元数据来生成的所以是可扩展的。在这里也建议不要使用关系型数据库因为不太适合非关系型数据库更加适合SaaS系统这个体系。
其实东西很多但是暂时先讲到这了我也不知道某些东西是不是属于公司的前些日子我们公司刚爆出了员工透露公司机密到网上所以。。。
最后讲下吧如果要做SaaS系统一定要考虑长远不要先被业务拖累。如果在半年一年内无法脱离业务需求来架构设计与开发SaaS系统那么我的建议是不要做什么SaaS了开发业务吧不然公司都活不下去的。
整篇看上去会比较理论但是实际上这些都是实践后的一些理论点。有很多的一些东西我无法分享太多非常抱歉。这次也是借这个阿里云活动的机会分享一点出来。
原文链接 本文为云栖社区原创内容未经允许不得转载。