Db架构中的日期属性



我在上次面试中遇到的一个问题:

您将获得一个包含id和加入日期列的员工详细信息数据库。这张桌子在1楼吗?

我想知道如果有date属性,模式是否可以在1NF中。日期的存在将如何改变答案?

这个问题的整个想法是欺骗你让你认为日期不是1NF列

1NF指定所有属性都存储原子值。Codd将原子值定义为"不能被DBMS分解成更小的部分"[7],这意味着列不应被划分为包含一种以上数据的部分,因此一部分对DBMS的意义取决于同一列的另一部分。

简单地说,一个元组的属性中不应该有2个值。

此表不满足1NF。因为一列中有多个电话号码。

Customer ID     First Name  Surname     Telephone Number
------------------------------------------------------------------------------
123             Pooja       Singh       555-861-2025, 192-122-1111
456             San         Zhang       (555) 403-1659 Ext. 53; 182-929-2929
789             John        Doe         555-808-9633

为了制作1NF中的给定表格,我们将电话号码列分为两列。

Customer ID     First Name  Surname     Telephone Number1   Telephone Number2
---------------------------------------------------------------------------------
123             Pooja       Singh        555-861-2025       192-122-1111
456             San         Zhang        (555) 403-1659     Ext. 53 182-929-2929
789             John        Doe          555-808-9633   

与第一个表格不同,只要您在一列中只存储一个日期,您的表格将为1NF

最新更新