我正在构建一个多租户 Web 应用程序,并且正在寻找有关我的数据库设计方法的一些反馈。 我想我正在寻找验证(这是一个好方法,一个常见方法或一个坏方法)。
前端是一个 .NetCore Web 应用程序,用 C# 编写。 后端是 AZURE SQL 数据库。 关于分离租户记录,我使用了非常简单的模式设计。每个表都有一个 TenantID 列,每个 SQL 选择/更新查询都以“WHERE TenantID = @TenantID”开头。 所有“插入”语句都以“如果存在”开头,以验证外键以确保它们属于当前租户。当用户登录时,TenantID 始终存储在会话变量中。从不以表单或查询字符串形式传递。所以用户无权访问它。
这是在多租户数据库中分离租户记录的典型方法还是有更好的方法。
非常感谢您的反馈。
最重要的是,我想让事情变得简单,到目前为止我发现这运作良好。
租户数据分离有不同的解决方案。哪一种最好取决于您系统的具体情况。
我希望以下文章能够帮助您选择正确的解决方案:2024 年多租户数据库设计模式。