我是否需要为 `bigint generated always as identity` 声明唯一约束?
Do I need to declare a unique constraint for `bigint generated always as identity`?
我正在创建一个多租户应用程序并将 tenant_id
添加到我的租户将访问的所有表中。所有的表也将有一个递增的代理键。我需要声明代理键的唯一约束还是多余的?
CREATE TABLE tenant (
primary key (tenant_id),
tenant_id bigint generated always as identity
);
CREATE TABLE person (
primary key (tenant_id, person_id)
person_id bigint generated always as identity,
tenant_id bigint not null,
unique (person_id), -- Do I need this?
foreign key (tenant_id) references tenant
);
table 的主键应该是唯一标识 table 行的最小列集。所以这应该是 person_id
,因为它是专门为此目的创建的。
如果您需要加快基于 tenant_id
.
的搜索,请在 tenant_id
或 (tenant_id, person_id)
上添加另一个(非唯一)索引
我正在创建一个多租户应用程序并将 tenant_id
添加到我的租户将访问的所有表中。所有的表也将有一个递增的代理键。我需要声明代理键的唯一约束还是多余的?
CREATE TABLE tenant (
primary key (tenant_id),
tenant_id bigint generated always as identity
);
CREATE TABLE person (
primary key (tenant_id, person_id)
person_id bigint generated always as identity,
tenant_id bigint not null,
unique (person_id), -- Do I need this?
foreign key (tenant_id) references tenant
);
table 的主键应该是唯一标识 table 行的最小列集。所以这应该是 person_id
,因为它是专门为此目的创建的。
如果您需要加快基于 tenant_id
.
tenant_id
或 (tenant_id, person_id)
上添加另一个(非唯一)索引