??????? 基于数据库的模式和数据源是本次讨论的话题。这里的模式是启发于Oracle的Schema概念,数据源启发于Oracle的synonym和Haproxy.
??????? 数据库对客户来说,存在多用户模式,比如免费用户,普通收费用户,VIP用户。对开发人员来说,存在测试/开发(环境),生产(环境)模式。从其他视角,还会找到其他的模式。。。
??????? 对于多用户模式,规划策略可选下面之一:
- 单独为每类用户创建一个对应的数据库账户,该类账户赋予对应的Objects访问权限,程序使用该账户对应url链接去得到连接进而访问对应数据
- 各类用户对应使用自己的数据库
- 其他权限控制路由
??????? 对于测试/开发(环境)与生产(环境)模式,一般的数据库(如MySQL)可单独建议一个测试测试数据库,如xxx_testdb,然后正式的时候搬迁到xxx.对于Oracle,可测试的时候在一个schema下进行,生产环境在一个synonym下。。。
?
??????? 上述模式分类各有自己的优点和缺点,这里不列举了。
???????
???????? 基于Oracle的synonym和基于Haproxy,从一定程度上模糊了数据从哪里来(对于终端用户),当然带来的额外好处还有很多。。。比如: 数据安全,分布式。
?
?
????????