数组(UUID [])是否会破坏1NF?

时间:2013-12-21 15:27:59

标签: sql arrays database postgresql

我的问题是,在包含数组的表中是否包含一个包含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数组中。)

1 个答案:

答案 0 :(得分:4)

简而言之 - 是的。

1NF定义为:

  如果每个属性的域仅包含原子值,并且每个属性的值仅包含该域中的单个值,则

关系为第一范式。

换句话说,没有一个字段应该有自己设置的元素(或数组)。