我对数据库设计很感兴趣,现在正在阅读相应的文献。通过这本书,我遇到了一个奇怪的例子,让我感到不确定。有关系
在此表中,我们有一个复合主键(StudentID、Activity)。但是ActivityFee部分依赖于表的key(Activity -> ActivityFee),所以作者建议把这个关系分成另外两个关系:
现在如果我们看一下 STUDENT_ACTIVITY,Activity 变成了一个外键,而关系仍然有一个复合主键。
我们有一个表,其中所有列都定义了一个复合主键,可以吗?
如果不是,在这种情况下我们应该怎么做?(可能定义一个代理键?)
什么是处理多值属性(在我们的例子中是活动)以消除可能的数据异常的好方法?