1
在一個簡化的租賃系統的結果存在,有三個關係:檢查一組鍵的設置
- 書:ID,標題,描述
- 複製:ID,book_id
- 預訂:id,copy_id,rent_from,rent_until
對於每本書都有很多副本。如果客戶出租書籍,則選擇可用副本並創建相應的預訂記錄。
現在我的問題:客戶選擇一本書,他/她想租。系統需要檢查哪些副本可用於給定的租期。
什麼是查詢可用副本最優雅和最快的方式?
基本上,一步一步的人會做到以下幾點:
- 選擇相應的書
- 的所有副本的副本
- 檢查規定的期限選擇所有預訂這些文件的副本該書不包含在選定的預訂中。如果包含所有副本,則該書在給定期限內不可用於出租
第3步給我頭痛。如何在SQL中做到這一點?我甚至可以在一個優雅的查詢中執行所有三個步驟?