繁体   English   中英

链接到多租户数据库中suser_sid()的TenantId的索引和数据类型

[英]Indexing and DataType of TenantId Linked to suser_sid() in a Multi-tenancy database

作为多租户数据库的一种常用方法,我在每个表中都有一个TenantId,而该表又与suser_sid相同,并且基于基于TenantId = suser_sid()过滤的表的视图。

尽管这在大多数情况下都可以正常工作,但是由于我的suser_sid()返回的数据类型为varbinary(85),因此TenantId的自然数据类型为varbinary(85)。

出于明显的原因,这并不适合将其包含在“主键”或“外键”关系中,因为我认为在主索引中具有可变长度是个坏主意(如果我错了,请告诉我)。

为TenantId使用binary(85)是一个更好的主意吗? 还是我应该选择bigint,然后像Convert(bigint,suser_sid())这样进行转换,并与之进行比较,并希望不同租户不会产生冲突。

实用上, guid是租户标识符的很好的候选者,它非常支持索引编制,并且可以用作self中的主键和引用表中的外键。 如果您也必须从代码中生成代码,则不需要大的逻辑或思维过程。 只需调用Guid.NewGuid()在C#中完成。 SQL Server还可以返回我放心的最后插入的内容。 因此,我认为它可能是正确的候选人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM