我真的很难规范客户会议表格。
详情如下
Client_Name,Client_phone(规范化)
日期,时间,地点,Person_met,位置,key_notes,员工(重复组)
在第一个NF中,我知道Client_Name(给定一个client_ID密钥)将是重复组中的外键,但我不知道哪个属性是主键。
日期和时间会识别会议吗?不确定你是否可以有两个主键?
非常感谢任何帮助。
答案 0 :(得分:1)
我认为日期,时间和地点应该是复合主键(您可能可以同时举行多个会议..)。
我不确定“重复小组”是什么意思。
答案 1 :(得分:0)
个人我不喜欢复合键,除非有物理原因(例如:它将用于跳转层次结构)。我会建议一个代理键。 PK应该是天然存在的,独特的,强制性的并且优选稳定的(即未修饰的)。 由于这种情况很少发生,因此通常使用代理键(添加了通常由RDBMS分配递增数字的列)。
在你的例子中,日期和时间不应该是PK,因为可能会有两次会议确切的日期和时间(尽管不太可能,但仍然......)。 如果你必须拥有一个复合密钥,那么就需要日期,时间和客户名称,因为同一个客户端不能在同一时刻参加两次会议(对吗?) 此外,我注意到位置在那里两次。可能需要是一个位置ID,位置在一个单独的查找表中,每3个NF。