我正在编写一个图书馆数据库,并有以下表格:
复制(书籍副本)
Id int
ISBN nvarchar(13)
Purchase_Date datetime
客户
Id int
First_Name nvarchar(255)
Last_Name nvarchar(255)
Address nvarchar(255)
Membership_Joined_Date datetime
Membership_Expiry_Date datetime
贷款
Id int
CopyId int
CustomerId int
Loan_Date datetime
Loan_Expiry_Date datetime
Extension_Date datetime (nullable)
Return_Date datetime (nullable)
copyId和customerId字段分别是Copy和Customer表中的外键。
我可以用贷款表写一个表达式来阻止我两次借这本书吗?我在贷款表中使用空Return_Date
来检查一本书是否已经借出。任何帮助表示赞赏。
答案 0 :(得分:1)
许多数据库(包括SQL Server)都支持过滤索引。您可以创建过滤的唯一索引:
create unique index unq_loan_copyid
on loan(copyid) where Loan_Expiry_Date is null;