规范化表格

时间:2010-10-14 17:30:27

标签: database database-design normalization

我真的很难规范客户会议表格。

详情如下

Client_Name,Client_phone(规范化)

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

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

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我认为日期,时间和地点应该是复合主键(您可能可以同时举行多个会议..)。
我不确定“重复小组”是什么意思。

答案 1 :(得分:0)

个人我不喜欢复合键,除非有物理原因(例如:它将用于跳转层次结构)。我会建议一个代理键。 PK应该是天然存在的,独特的,强制性的并且优选稳定的(即未修饰的)。 由于这种情况很少发生,因此通常使用代理键(添加了通常由RDBMS分配递增数字的列)。

在你的例子中,日期和时间不应该是PK,因为可能会有两次会议确切的日期和时间(尽管不太可能,但仍然......)。 如果你必须拥有一个复合密钥,那么就需要日期,时间和客户名称,因为同一个客户端不能在同一时刻参加两次会议(对吗?) 此外,我注意到位置在那里两次。可能需要是一个位置ID,位置在一个单独的查找表中,每3个NF。