我无法找到解决为唯一索引构建表的问题的方法。
我有一张表,其中保留了项目,并且有几个字段用于组成
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、Date、TimeOfDay、ReservationStatus 需要唯一:同一天下午不能有多个会员预订同一个SubItem。
我通过我的应用程序验证了这一点,但是我想通过表结构确保完整性(以防程序员出错)。