下面是一個例子架構來說明什麼我談論:如何擺脫「間接」外鍵?我是不是該?
比方說,我存儲的一些活動的信息(講座,培訓,等等)是在一組特定的被託管根據類型(黑客空間,游泳池等)和城市確定的位置。每個活動都在合適類型的所有位置立即發生(例如,任何編程研討會一次在所有黑客空間發生),因此任何人都可以選擇在任何合適的位置參加活動。因此,任何活動只與某個位置類型相關聯,而考勤記錄與某個活動(因此隱含在某種位置類型中)以及該特定用戶參加該活動的城市相關聯。
到目前爲止,系統中最常見的查詢是生成一個給定人蔘與的所有活動的報告。
我覺得這很難看嗎?我應該嘗試重新設計這個,如果是這樣,怎麼樣?
P.S.我寧願不透露我存儲在數據庫中的實際數據,因爲我不得不採用類似的設計,所以我希望這種類比是有道理的。
位置缺少主鍵。 (其餘部分自然而然) – wildplasser
@wildplasser這對(Type,City)是Locations的主鍵。 –
如果某個地點有多種類型,該怎麼辦? (黑客空間+游泳池+檯球) – wildplasser