很好的例子将是shopify。你有N个用户的地方(在这种情况下每个用户都假设网站)。并且每个用户都将拥有自己在DB中的记录。但是db模式将是相同的(每个用户使用相同的表,products
,customers
,orders
等。)
那么问题是组织这种解决方案的最佳方式是什么? 将所有内容存储在一个数据库中,但存储在不同的表中,或者为每个用户运行单独的数据库(但这将是维护,可伸缩性和自动化的问题)
我们可以将一个数据库与products
,customers
,orders
等公共表格一起使用。我们将在表格users
中存储有关每个网站的记录。
在表products
,customers
中,我们将按user_id
对所有记录进行分组。
这是可能的解决方案之一。但是,如果我们将拥有1000个用户(站点),每个将拥有约2k个产品,并且~10万个客户,我们最终会得到具有数百万条记录的表格,因此问题将是:
任何链接等都将非常感谢,谢谢!
答案 0 :(得分:1)
我建议通过支持良好的开源解决方案来审查数据库。考虑到这一点,这里有一个非常简单的模式,我发现它非常快,可以解释一个良好的工作解决方案,并考虑到扩展能力。
答案 1 :(得分:1)
我写了一篇博客文章,介绍了如何在周末使用这种技术将大型单租户mysql应用程序转换为多租户应用程序。 https://opensource.io/it/mysql-multi-tenant/