我正在启动一个web应用程序,它将被许多公司使用(超过20K),最重要的是,每天都会记录很多信息。我希望您就以下想法提出建议:为每家公司创建一个数据库,以便进行如下sql查询:
select * from enterprisedb1.tablename;
select * from enterprisedb2.tablename2 where enterprisedb2.tablename2.col='foo'拜托,我需要你的建议,我在谷歌上什么都找不到
发布于 2018-08-13 04:11:29
如果您要将它卖给多个客户端,那么可能会导致他们数据的分离。
一方面,应用程序的所有内容都在每个客户端的一个数据库中,并且只要正确使用连接字符串,您可能就不需要再为应用程序的其余部分指定公司名称了。每个查询都不再有"where customer=123“。
这也意味着客户可以被删除,备份,移动,审计,任何完全独立的方式。
这也意味着不存在开发人员或查询不小心进行跨客户端操作的风险。因此,您甚至可以打开通用查询访问,但仍然不能意外地越过客户端到客户端的边界。安全设置也会更简单。
但是如果你有一百万个客户,你就会有很多数据库。它的工作效果将取决于各种事情,包括您选择的数据库。
除非您创建额外的“公共”数据库或类似的东西,否则也会有多个引用数据副本。
这将是一个非常“取决”的答案,但这是一些需要考虑的事情。
发布于 2018-08-13 04:16:11
我建议对每一家公司使用通用的桌子。它会更好的管理和易于理解。
为公司数据创建一个表,并在另一个mete数据表中使用该键的Integer引用。为了获得更好的性能,索引和查询必须有良好的格式。
https://stackoverflow.com/questions/51814645
复制相似问题