小编awj*_*awj的帖子

我是否应该仅出于 PK 目的向交叉引用表添加自动增量/IDENTITY 字段?

我将以下交叉引用表添加到我的 SQL Server 托管的数据库中:

company_id bigint not null (FK)
org_path nvarchar (2048) not null
Run Code Online (Sandbox Code Playgroud)

company_id字段是指id另一个表中的字段(它是主键)。

鉴于也可以有多条记录具有相同的company_id,任何主键都必须使用这两个字段。但是,我无法使用这两个字段创建密钥,因为org_path对于 SQL Server 来说太长了。

至于org_path,这是它存在的唯一表。对该表的查询很可能会要求所有条目或所有org_path条目company_id。或者换句话说,这个表是否会被 查询,这看起来令人怀疑org_path。此外,不太可能org_path会更新,更有可能插入和 - 可能很少 - 删除。

我预计总行数将在数千个以内。

此外,这nvarchar (2048)是因为该值必须模仿第三方数据库中的值。一个典型的例子是这样的

\Translation Providers\[customer name]\[order name]\
Run Code Online (Sandbox Code Playgroud)

并且可以包含变音符号。

所以我的问题是:添加一个自动增量id字段并将其与company_id主键结合使用会更有效,还是会增加不必要的开销 -company_id另一个表中的主键这一事实是否有任何影响?效果在这里?

sql-server primary-key clustered-index t-sql

9
推荐指数
2
解决办法
1510
查看次数

标签 统计

clustered-index ×1

primary-key ×1

sql-server ×1

t-sql ×1