我有一个3字段的表:颜色,水果,日期。我可以选择1种水果和1种颜色,但每天只能做一次。数据库表设计与易用性。 (复合PK?)
例子:
- 红,苹果,周一
- 红,芒果,周一
- 蓝色,苹果,周一
- 蓝色,芒果,周一
- 红,苹果,周二
我可以建立表格的两种方式是:
1.-要使颜色,水果和日期成为复合主键(PK)。这样可以很容易地将数据插入表中,因为所有需要的验证都是由数据库完成的。
- PK颜色
- PK水果
- PK日期
2:已经和id列设置为PK,然后所有其他领域。许多人都这样说,因为复合PK是邪恶的。例如,CakePHP不支持它们。
- PK ID
- 颜色
- 水果
- 日期
两者都有优点。这将是更好的方法?
Duplicate:http://stackoverflow.com/questions/1823685/database-when-should-i-use-a-composite-index – ChristopheD 2010-03-29 21:25:07