我正在研究一个项目,该项目有可能拥有大量用户,每个用户都将管理他们自己的唯一数据集。我认为数据可以以两种方式之一存储。构建数据库以进行缩放的最佳方法
1)为每个用户创建一个完全不同的数据库,使得它们的数据是从每个人充分分开别人的
2)分享在相同的数据库中的数据,并且使用一个USER_ID字段查询级别分离它。
对于每个用户,模式将始终相同。
最重要的是系统需要能够扩展,我不确定是否有可能有数千个不同的数据库,或者在同一个表中存储数百万条记录的规模会更好。
我有兴趣从过去曾经处理过这种情况的人那里听到这样的情况,以及这两种情况都有哪些缺陷。
*我相当有信心,我可以处理任一选项的安全性。 *我可以看到任何升级方式的优点,但我认为我会立即升级所有人,无论选择哪种数据模型。 *我认为备份具有优点/缺点,无论使用何种数据模型。 我可以看到正反两方面的方法。这对我来说纯粹是一个可扩展性问题。 –
如果没有计划的话,操作上的限制,特别是升级/备份/恢复周围的操作限制可能会成为一个麻烦。如果没有所有的信息,那么提供一个“正确的”答案是不太可能的 - 或者对SO的领域的解决方案100%确定无疑。 – Andrew
您可以用任何一种机制进行扩展,其中一些最大的数据以分片/映射缩减方式保存,同样,单个数据库服务器上存在数十亿行数据集(硬件并不便宜)。 – Andrew