0

短版

可以在同一个数据库中拥有一些共享表和其他每租户表吗?

更长的版本:

我们(我和一些非 stackoverflow-ers)正在设计一些多租户 SAAS。

我们目前使用的是共享数据库和共享模式架构,每个表都有一个tenant_id 列来区分租户的数据。对于小型数据集,例如我们的“用户”表(如果我们有 1000 个租户,每个租户有 10 个用户,= 10,000 行),这工作得很好。

但是,有些表会变得非常大。例如,“文件”表。每个租户可能有一百万个文件,其元数据需要存储在数据库中。每个拥有 1,000,000 个文件的租户创建一个 10 亿行表。我担心这操作起来会很慢,我想按租户切碎文件表。

问题:

  1. 有一些共享表和其他每租户表是否可以接受/可取,例如files_<tenant_id>

    我想对可扩展性、备份、可维护性等问题进行批评。

  2. 处理如此大的数据还有哪些其他选择。
  3. 这仍然被认为是共享模式吗?
4

1 回答 1

0

哪个数据库?您是指数据库,就像 MySQL 表示数据库或模式一样?

真的,一个租户会有 100 万个文件吗?使用tenant-per-db将它们拆分会更容易

我们有tenant_id 风格的系统,如果我要再做一次,我会为每个模式选择一个租户。

于 2012-09-20T17:51:48.930 回答