回答

收藏

多租户主键的最佳方法

技术问答 技术问答 232 人阅读 | 0 人回复 | 2023-09-13

我有几个客户端使用的数据库。我真的不想在客户端之间流血。我希望编号从1开始,针对客户。
3 R0 D) i$ \1 N我将使用由两部分组成的组合键tenant_id以及增量ID。
2 R1 o# r) B9 I  C  r# V( l/ W为每个租户创建增量密钥的最佳方法是什么?
  c* k( ^5 Z8 E" f* E我正在使用SQL Server Azure。我担心锁定表,重复键等。通常,我会把主键设置为IDENTITY并继续前进。( Y; o& \+ L9 c, F
谢谢
; v: j4 ^+ x1 H                                                                4 ?8 \; b9 y. \% y& \1 }7 U( J
    解决方案:                                                                6 g5 x" x, j% n8 e- q, w% H
                                                                以后要不要用?SQL Azure联合身份验证?如果是这样,当前版本SQLAzure不支持联合身份IDENTITY作为收集索引的一部分。2 k4 M5 k% @! w+ E  C2 ]# ?) A3 Z
如果你还没有检查联盟,你可能需要检查它,因为它提供了一种有趣的方法来分割数据库,并在数据库中隔离租户。6 w1 O( x) b: e# e6 o8 [! f. |& A
根据最终目标,您可以使用联合身份验证GUID增量索引也可用作表上的主要聚集索引INT IDENTITY这个字段可以显示给最终用户。INT5 s8 L5 n" F- z. L) u  H) R
IDENTITY如果你想一起使用字段。TenantID,则每个“
# K$ s. b( G: J: o) fTenant表实际上会变成一个孤岛(至少据我所知),所以在表中的字段上使用IDENTITY实际上,自动生成的值会不断增加,这个值是给定的Tenant内递增。1 K. c, K+ ^* j/ V% W' T
当\如果数据合并在一起个租户的数据),您将在此INT
4 t+ x7 r0 g3 n- WIDENTITY字段冲突(因此,为什么不呢?IDENTITY作为联合身份验证的主键),但只要不使用,字段应该是整个系统中唯一的标识符。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则