Schema
調度系統的唯一時間範圍或數據庫模式
我必須設計一個表格,其中包含要顯示的媒體的預定時間。這些預定時間不應重疊。
在我的 SheduledSlot 表中,我有:
id integer PRIMARY KEY begin datetime(or integer for SQLite) end datetime(or integer for SQLite unixtime) media_item integer (foreign key)
如何強制執行確保每個計劃項目的唯一時間範圍的約束?
您應該在可以由您的創建計劃時間和修改計劃時間方法呼叫的方法中在數據庫端實現這一點。
您可以使用觸發器來實現這樣的功能。它可以是
INSTEAD INSERT/UPDATE
或BEFORE INSERT/UPDATE
觸發取決於您使用的 RDMS。如果新數據未通過驗證,則會在觸發器正文中引發錯誤。