從以下三個表,問題就出現完整性約束 -強制閉環外鍵約束
Tour
- Id
TourPackage
- Id
- TourId
Traveller
- Id
- TourId
- PackageId
外鍵約束到位。不過,我也希望執行該旅行者套餐也必須參考旅行者所提及的相同旅行。
Traveller.Tour = Traveller.Package.Tour
我可能能夠輕鬆地在業務層上強制執行此操作,但是可以在數據庫中執行此操作嗎?還是應該重新考慮我的設計?請注意,我不打算在新的關係表中提取外鍵。我認爲Tour和Package是Traveler實體的一部分,因此應該駐留在實體本身中。
UPDATE
我的應用程序的單一旅遊的上下文中運行。因此,我加載的所有數據都會指向單個遊覽。此外,大部分數據來自Traveler表。所以,有一個直接TourId到桌上是有道理的。無論如何,我以這種方式來看待關係。
- 一個旅遊有幾個包。
- 一位旅行者參加旅行。
- 旅行者爲訂購的旅程選擇包裹。
所以,我猜旅遊者和旅行者之間的關係是合理的。我錯了嗎?
首先將TourId存儲在旅行者中有什麼好處? – ryanbwork 2013-03-07 19:58:10
@ryanbwork - 請看看最新的問題。 – 2013-03-07 20:05:42