我们正在计划构建一个基于saas的产品,所以主要经过大量的搜索,我们发现有三种数据库方法来设计saas产品。
每个租户的独立数据库
每个租户的单独架构
所有租户的共享架构和一个数据库(但将使用租户id进行查询)
所以我们计划进入方案2,
所以最初我们使用mysql,但是我们没有发现如何在mysql中获得多个模式,我们使用sequelize作为orm。
在大量的google搜索之后,我们发现许多基于多租户的产品正在使用postgresql作为强大的模式方法,因此我们尝试了以下库:
https://github.com/westmark/sequelize-multi-tenant-enhancer
我们尝试了这个库的基于多模式的方法,但是数据没有按照租户显示,而且我在github中打开了一个问题,
所以,如果你有任何想法,或任何帮助我构建saas产品的帖子,请帮助我
注意:我的堆栈:node+express+angular+mysql或postgres
我的问题是如何在postgres中使用多个模式?
1条答案
按热度按时间jhdbpxl91#
最后,我决定使用选项2,我转向postgresql而不是mysql,因为postgresql有基于模式的方法!
现在我的最后代码是:
我正在设置我的postgres连接
为了测试,我创建了一个名为“inventory”的表
在我的应用程序中,一个在线的人来注册,注册的时候我把业务代码存储到我的业务表中(业务表来自单独的数据库,这是一个超级主应用程序数据库),所以我在postgres中查找业务代码和循环并生成动态模式
现在看一下我的api,我正在基于req.user.code(来自登录会话)执行crud,最后根据特定的模式匹配显示数据,
最后,我为每个客户机提供了干净的独立模式
谢谢!