我无法找到解决构建独特索引表的问题的方法。独特索引的故障构造表
我有哪里的项目被保留一个表,但是也有一些用于弥补
ItemID - INT
Date - DATE
TimeOfDay - INT (morning = 1, afternoon = 2)
ReservationStatus - VARCHAR (expired, cancelled, confirmed, cancelled by admin)
的问题是与reservationStatus字段进行多个领域。系统应该允许多行被取消,但只有一行被确认或过期(应用程序从确认变为过期)。我出来的想法,任何帮助将不胜感激。
编辑:
全表结构
ReservationID - PK Auto-incrementing Integer
SubItemID - INT FK
MemberID - INT FK
Date - DATE
TimeOfDay - INT
ReservationStatus - VARCHAR
SubItemID,日期的TimeOfDay,更改为reservationStatus必须是唯一的:一个以上的成员不能预留相同的子项下午在同一天。
我通过我的应用程序验证了这一点,但是我想通过表结构来确保完整性(在程序员错误的情况下)。
这是整桌吗?是否有与每行相关的用户ID?你是否考虑过使用ENUM来保留状态而不是VARCHAR? – ModulusJoe
_“对于同一个'ItemID',系统应该允许多行被取消”_?另外,桌子的PK是什么? – geomagas
@acyclic - 我省略了其他字段,请参阅编辑。请原谅我,但我对ENUM不熟悉,现在将对此进行研究。 – Raythe