使用复合/复合主键的缺点是什么?
解决方法
>可能会导致更多的问题进行归一化(
2NF,“请注意,当一个1NF表没有复合候选键(由多个属性组成的候选键)时,该表自动处于2NF”)
>更多不必要的数据重复.如果您的组合键由3列组成,则需要在每个表中创建相同的3列,作为外键.
>通常使用替代键可以避免( read about their advantages and disadvantages) >我可以想象一个复合键的一个很好的场景 – 在表示N:N关系的表中,像学生 – 类,而中间表中的键将是(StudentID,ClassID).但是,如果您需要存储有关每一对的更多信息(例如同一课程中学生的所有标记的历史记录),那么您可能会引入代理键.
>更多不必要的数据重复.如果您的组合键由3列组成,则需要在每个表中创建相同的3列,作为外键.
>通常使用替代键可以避免( read about their advantages and disadvantages) >我可以想象一个复合键的一个很好的场景 – 在表示N:N关系的表中,像学生 – 类,而中间表中的键将是(StudentID,ClassID).但是,如果您需要存储有关每一对的更多信息(例如同一课程中学生的所有标记的历史记录),那么您可能会引入代理键.