您将下面的示例规范化到什么程度,以及该示例到底符合哪个规范化级别?
CREATE TABLE "public"."contact_info" (
"id" SERIAL,
"home_phone" TEXT,
"mobile_phone" TEXT,
"work_phone" TEXT,
"fax_phone" TEXT,
"email" TEXT,
"line1" TEXT,
"line2" TEXT,
"city" TEXT,
"state_id" INTEGER,
"zipcode" TEXT,
"preferred_type" TEXT,
"first_name" TEXT,
"last_name" TEXT,
CONSTRAINT "contact_info_pkey" PRIMARY KEY("id"),
CONSTRAINT "contact_info_fk_state_id" FOREIGN KEY ("state_id")
REFERENCES "public"."states"("id")
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE
) WITH OIDS;
需要注意的是,每条记录只能有 0 或 1 个家庭、移动、工作或传真号码记录。每个电话号码的功能完全取决于我的主键。根据我对数据库规范化的了解,我认为这符合 5NF,但不符合 6NF。
由于电话号码定义是一成不变的(没有新的电话号码类型,没有多个 home_phone 条目等),我是否有任何理由要将电话号码拆分为由 (contact_info_id, phone_number, type) 跟踪的单独关系?