2010-10-14 143 views
0

我真的很努力规范化客户会议表格。规范化表格

的详情如下

CLIENT_NAME,Client_phone(标准化)

日期,时间,地点,Person_met,位置,key_notes,工作人员(重复的组)

在1 NF,我知道Client_Name(给定一个client_ID键)将是重复组中的外键,但我不知道哪个属性是主键。

日期和时间会标识会议吗?不确定您是否可以拥有两个主键?

任何帮助将不胜感激。

+0

规范化实际上与关系系统以及关系表模式的扩展有关。规范化理论实际上不适用于形式。 – 2010-10-14 20:22:40

+0

您的一组重复组中有两个位置字段。这两个不同的地点,或只是一个地点(意外输入两次)?另外,工作人员代表什么? – 2010-10-15 10:13:06

回答

1

我认为日期,时间和地点应该是复合主键(您可能可以同时有多个会议..)。
虽然我不确定“重复组”的含义。

+0

谢谢你,这是有道理的。关于重复组,我的意思是删除一个属性表中可能多于一个条目的数据。即在存储客户会议的表格中,作为表格,会有不止一次的日期,地点,人员会见等。 – jamiesmith25 2010-10-14 18:15:11

0

个人我不喜欢组合键,除非有物理原因(例如:它将用于跳转层次结构)。我会建议一个代理键。 PKs应该是一种自然发生的,独特的,强制性的,并且最好是稳定的(即没有改变)。 由于这种情况很少发生,通常使用替代关键字(通常由RDBMS分配一个递增数字的列)。

在你的例子中,日期和时间不应该是PK,因为可以想象有两次会议具有确切的日期和时间(尽可能不如此,仍然是......)。 如果你必须有一个复合键,那么日期,时间和客户端名称将是必要的PT使其独特,因为同一客户端不能参加两次会议在同一时刻(对吧?) 另外,我注意到位置是在那里两次。可能需要成为一个位置标识,位置在每个第三NF的单独查找表中。