1 - 路由可以包含一個或多個圍欄和圍欄庫侖通過一種或多種途徑可以包含
Route --<RouteFenceRelationship>-- Fence
"RouteFenceRelationship"
PK RouteFenceRelationshipId
FK RouteId
FK FenceId
多對多的關係不工作得很好,我會大量建議一個關係表來定義哪些路線包含哪些柵欄。
2 - 中的路由分配一些車輛(考慮到車輛可能是部分或其他途徑)
Vehicle --<VehicleRouteRelationship>-- Route
"VehicleRouteRelationship"
PK VehicleRoutRelationshipId
FK VehicleId
FK RouteId
一樣了這裏,關係表,以避免配備了許多的問題很多關係。
3 - 當包含圍欄的路線已分配車輛時,我需要控制車輛在圍欄內通過的時間;然後我需要存儲,如果圍欄將在每個車輛設置比較當車輛圍欄
Fence --<FenceVehiclePassEvent>-- Vehicle
"FenceVehiclePassEvent"
PK FenceVehiclePassEventId
FK FenceId
FK VehicleId
Timestamp
我真的不明白你的第三點內搞定,但你可以在此添加一個條目車輛,籬笆和通過的時間。那是你在找什麼?
首先感謝您爲ManyToMany使用關係表,但是我想確定我的邏輯思路是否可以,以及您解釋沒問題,但是,這個方案是一個很好的做法嗎? – Carlos
好的,我明白你的意思了。你的腦袋在如何設計這個問題上掙扎,因此它不是循環的。我不認爲這個例子應該給出任何問題,因爲它們不是全部'有'關係;車輛圍欄關係更像是一個事件。真正的答案是,我不知道這是否是最佳做法,但更經常的是,如果這樣做合乎邏輯,那就沒問題。也許其他人可以關注一些情況 –
如果路線,護欄和車輛是您的模型中可共享的「實體」,那麼您不能使用不同的設計。唯一的另一種方法是對錶進行非規範化,這對於表的可擴展性和一致性來說是一個壞主意。 – user1759572