锁定老帖子 主题:多个客户共享同一个数据库的设计办法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-25
Mirima 写道 简单做法,按用户平切schema,共用数据放默认的共用schema
好贴,引出好答案.我来做资料补充. http://blog.csdn.net/yanjiangbo/article/details/1782576 |
|
返回顶楼 | |
发表时间:2011-08-25
参照下saas模式下的多租户
|
|
返回顶楼 | |
发表时间:2011-08-25
SaaS实现方式一般有三种:
1.每个租户都有一套应用和一个数据库,这种成本是最高的,管理很简单,隔离性非常好。 2.多个租户使用同一套应用,不同的数据库,这种成本比第一种低很多,像Oracle可以采用多schema的方式,管理和维护相对也简单,但是需要保证一套应用满足每个商户进行数据模型的定制,再就是一套应用多个数据库连接池。这个对技术上要求比较高。 3.多个租户使用同一套应用和一个数据库,这种成本是最低的,但是隔离性和扩展性较差,技术上实现也比较简单。 |
|
返回顶楼 | |
发表时间:2011-08-25
zhuzhsh 写道 SaaS实现方式一般有三种:
第一种办法成本真是高.公司还希望客户越多越好.比方说达到1W个,那简直不就是没办法管理了?
1.每个租户都有一套应用和一个数据库,这种成本是最高的,管理很简单,隔离性非常好。 2.多个租户使用同一套应用,不同的数据库,这种成本比第一种低很多,像Oracle可以采用多schema的方式,管理和维护相对也简单,但是需要保证一套应用满足每个商户进行数据模型的定制,再就是一套应用多个数据库连接池。这个对技术上要求比较高。 3.多个租户使用同一套应用和一个数据库,这种成本是最低的,但是隔离性和扩展性较差,技术上实现也比较简单。 应该是用第三种方案,不过将来维护上可真是费劲啊... |
|
返回顶楼 | |
发表时间:2011-08-25
hngmduyi 写道 zhuzhsh 写道 SaaS实现方式一般有三种:
第一种办法成本真是高.公司还希望客户越多越好.比方说达到1W个,那简直不就是没办法管理了?
1.每个租户都有一套应用和一个数据库,这种成本是最高的,管理很简单,隔离性非常好。 2.多个租户使用同一套应用,不同的数据库,这种成本比第一种低很多,像Oracle可以采用多schema的方式,管理和维护相对也简单,但是需要保证一套应用满足每个商户进行数据模型的定制,再就是一套应用多个数据库连接池。这个对技术上要求比较高。 3.多个租户使用同一套应用和一个数据库,这种成本是最低的,但是隔离性和扩展性较差,技术上实现也比较简单。 应该是用第三种方案,不过将来维护上可真是费劲啊... 现在一般的都是采用第二种方案,我们现在做的也是采用第二种方案,技术难度上大些。 |
|
返回顶楼 | |
发表时间:2011-08-25
顶顶更健康,同疑问,求答案
|
|
返回顶楼 | |
发表时间:2011-08-25
yaoming159 写道 顶顶更健康,同疑问,求答案 核心的问题就是租户自定义模型(像用户信息,有的需要自己添加几个字段),如果没有定义的内容,整体的管理都是很简单的。 |
|
返回顶楼 | |
发表时间:2011-08-25
zhuzhsh 写道 yaoming159 写道 顶顶更健康,同疑问,求答案
核心的问题就是租户自定义模型(像用户信息,有的需要自己添加几个字段),如果没有定义的内容,整体的管理都是很简单的。 我也来抛个砖,数据库表的设计使用纵横结合,允许一些字段的冗余。 单单使用纵向表也是最简单的,其实就是个联合主键的Map。 纵向表扩展性好,但是查询功能较弱。 所以使用公用字段作为横向表,自定义的为纵向表。 |
|
返回顶楼 | |
发表时间:2011-08-25
结合楼主要求,只需加数据权限(用一个字段标示这条记录的归属ID)就可以解决。
|
|
返回顶楼 | |
发表时间:2011-08-25
分库分表,按用户分区,流水里面按用户分区来划分, master-slaves读写分离。。
|
|
返回顶楼 | |