gpt4 book ai didi

sql - 数据库客户端特定表与关系表

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:22 26 4
gpt4 key购买 nike

我有一个场景,我的应用程序是一个基于 SAAS 的应用程序,可满足多个客户的需求。对客户而言,数据完整性非常重要。

保留我的表格更好吗

  1. 客户特定或者
  2. 关系表

例如:我有一个包含字段 MapField1、MapField2 的映射表。我需要每个客户的此类数据。

我应该有像 MappingData_ 这样的表吗

或映射到 ClientId 的单表

带字段 MapField1、MapField2、ClientId 的 MappingData

最佳答案

我会为每个客户创建一个单独的数据库(单个 SQL Server 实例中的多个数据库。)

这样您就可以使用单一架构设计一次。

  • 没有影响测试和开发的动态命名表
  • 可以在一个数据库中设计和测试升级和维护,然后推广到所有数据库
  • 可以非常简单地备份、恢复或删除单个客户的数据
  • 在一个数据库中发现/利用的错误不会影响其他数据库的完整性
  • 可以使用 SQL 登录管理数据访问(读取写入)(无需重新发明轮子)

如果需要全局共享数据,那将存储在另一个数据库中,对不同的 SQL 登录具有自己的一组权限。


使用单个数据库,其中包含所有用户是我的下一个最佳选择。您仍然只有一个模式。但是您无法对客户的数据进行分区,您需要自己管理访问权限和权限,以及一大堆其他额外的设计和测试工作。


永远不会接近为其他客户动态创建新表。新表名意味着您的所有查询都需要使用新表名进行更新,以及一大堆其他令人头疼的维护问题。

我非常认为,如果您想在照常使用应用程序/服务期间动态创建表,那么您的设计就很糟糕。

关于sql - 数据库客户端特定表与关系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13429363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com