加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

多租户数据库架构

发布时间:2021-01-16 12:59:35 所属栏目:编程 来源:网络整理
导读:我正在构建一个SAAS应用措施,我们正在接头每个客户端与共享数据库之间的一个数据库.我已经阅读了许多内容,包罗SO的一些主题,但我尚有许多疑问. 我们的平台应该由每个客户高度定制. (他们应该可以或许拥有自界说表并向现有表添加自界说字段). 在这种环境下,大都据

我正在构建一个SAAS应用措施,我们正在接头每个客户端与共享数据库之间的一个数据库.我已经阅读了许多内容,包罗SO的一些主题,但我尚有许多疑问.

我们的平台应该由每个客户高度定制. (他们应该可以或许拥有自界说表并向现有表添加自界说字段).
在这种环境下,大都据库要领看起来很棒.

题目是.我的“用户”表应该在主数据库中照旧在每个客户端数据库中?
用户也许拥有一个或多个组织,因此它将存在于多个数据库中.
那么,像国度表等通用表怎么样?

在master数据库中是故意义的.可是我有许多带有created_by字段的表,它们具有效户的外键.尚有客户端的一些权限相干表.

假若有多个数据库,我会失去外键的强盛成果,这意味着对数据库的查询更多.我知道我可以在数据库之间行使交错毗连,假如它们在统一台处事器中,那么我就失去了可扩展性. (我未来也许必要有多个数据库处事器).
我已经思量了联邦表.不确定机能.

我行使的技能是php和symfony 2框架以及数据库的mysql.

其它,我担忧维护这样一个体系.我们可以建设一些脚原来自动化全部数据库中的模式变动,可是假如我们有10k客户端就意味着10k数据库.

你对此有何观点?
我的应用措施的首要特点应该是机动性,以是假如客户必要比根基平台没有的更详细的对象,应该可觉得他做.

办理要领

这里有一些经典题目.你去过 http://highscalability.com/吗?哪里有一些好的案例研究.

按照小我私人履历,假如您实行在一台处事器上共享客户端,您会发明一个很是乐成/活泼的用户将跟着时刻的推移占用该计较机的全部资源.我们在SAAS中有一个客户端粉碎了共享处事器,我们不得不将他移到其他处所.

我会将全局列举转换为处事.您可觉得国度/地域列表,状态列表等建设一此中央数据库,并将其置于Web处事层之后.另外,在该数据库中,您可以拥有效户打点/打点哪些处事器属于哪个用户等.您可以建设一个打点派别,读取/写入此数据库以打点您的用户群.

假如我再次做SAAS,我会从小处开始,守候疼痛爆发.你真正想要的是在它们产生时办理扩展题目的好器材.让一些剧本筹备好跨处事器举办转动模式变动(一旦有多个处事器,就无法停止这种环境).在修改模式时行使脚原来删除计较机.有剧本将用户从共享处事器迁徙到专用处事器.

思量从中央数据库配置复制.这将抽取每个用户分区/数据库所需的全局信息,而无需编写大量代码.

可是我见过的最重要的提议 – 而且履历富厚 – 不要太全力成立下一个局限的Facebook.开始简朴,看看现实产生了什么,然后再担忧首要的可伸缩性题目.您也许会感想惊奇,由于用户群的增添可以很好地扩展,哪些不行扩展.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读