Bam*_*Bam 7 sql database arrays postgresql
我的问题是,在包含数组之前位于 NF 的表中,包含包含 UUID 数组的字段是否会破坏Normal Form ?
原表:
CREATE TABLE Floor
(
"Floor-ID" uuid NOT NULL,
"Floor-Floor" smallint NOT NULL,
"Floor-Desc" varchar(300),
CONSTRAINT "Floor-PK" PRIMARY KEY ("Floor-ID")
);
Run Code Online (Sandbox Code Playgroud)
新表,包括 UUID 数组:
CREATE TABLE Floor
(
"Floor-ID" uuid NOT NULL,
"Floor-Floor" smallint NOT NULL,
"Floor-Desc" varchar(300),
"Floor-Room-IDs" uuid[] NOT NULL,
CONSTRAINT "Floor-PK" PRIMARY KEY ("Floor-ID")
);
Run Code Online (Sandbox Code Playgroud)
包含 uuid[] 是否会破坏正常形式?
(理论上,相同的 UUID 可以存在于多行的多个 UUID 数组中。)
简而言之 - 是的。
1NF 定义为:
如果每个属性的域仅包含原子值,并且每个属性的值仅包含该域中的单个值,则关系处于第一范式。
换句话说,任何字段都不应该包含本身就是集合(或数组)的元素。
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |