【发布时间】:2018-01-31 00:24:25
【问题描述】:
shopify 就是一个很好的例子。您有 N 个用户(在这种情况下,每个用户都假定站点)。每个用户在数据库中都有自己的记录。但 db 架构将是相同的(每个用户使用相同的表,products、customers、orders 等)。
那么问题是组织这种解决方案的最佳方式是什么? 将所有内容存储在一个数据库中,但存储在不同的表中,或者为每个用户运行单独的数据库(但随后会在维护、可扩展性和自动化方面存在问题)
可能的解决方案:
我们可以将一个数据库与products、customers、orders 等常用表一起使用。我们将有一个表users,在其中存储有关每个站点的记录。
在表products、customers 中,我们将按user_id 对所有记录进行分组。
这是可能的解决方案之一。但是如果我们有 1000 个用户(站点),每个用户将有大约 2k 的产品和大约 100k 的客户,我们最终会得到包含数百万条记录的表,所以问题将是:
- 与每个用户(站点)拥有自己的数据库相比,它的表现如何?
- 这种方法的可靠性如何?更大的数据,更难维护,备份/恢复
- 安全,如果一个来源出现问题,成千上万的人将受到影响
任何链接等将不胜感激,谢谢!
【问题讨论】:
标签: mysql database database-design architecture