我正在使用asp.net MVC 3开发酒店预订系统,我有以下表格: -
客户表格包含: -
Customer_ID(PK)
姓
DATEOFBIRTH
等...
房间桌
Room_number(PK)
类型
等...
对于预订我有两种方法<或者
预订
Room_number(FK)
Customer_Id(FK)
日期
价格
PK (Room_number & Customer_Id & Date)
由于同一客户在同一天不能保留同一房间。
或者我可以按如下方式构建预订表;通过向我的Reservation表添加一个预留ID,而不是让PK包含三列,这将简化检索,更新预留对象的代码,如下所示: -
预订
Reservation_ID(PK)
Room_number(FK)
Customer_Id(FK)
日期
价格
我发现引入预订ID会简化代码并可能具有更好的性能优势,因为它可以更快地检索和更新预订记录,但引入reservation_ID将打破第3范式。因此,我应该打破第三范式以获得简单性和性能优势。
BR
答案 0 :(得分:1)
是的,我会将Reservation_ID添加为主键。这不会破坏第3范式;虽然我确信可以辩解,但这不是一个合适的地方。相反应该在Stack Overflow上。