我的问题是,在包含数组的表中是否包含一个包含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")
);
新表,包括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")
);
包含uuid []是否打破了Normal Form?
(理论上,相同的UUID可以存在于多行的多个UUID数组中。)
答案 0 :(得分:4)
简而言之 - 是的。
1NF定义为:
如果每个属性的域仅包含原子值,并且每个属性的值仅包含该域中的单个值,则关系为第一范式。
换句话说,没有一个字段应该有自己设置的元素(或数组)。