我在數據庫設計中很安靜,我正在嘗試一個測試用例來跟蹤學生。 在下圖中,學生可以在學校或俱樂部。爲此,我在LocationId上創建了一個作爲全球學生身份的地方。 規範化數據庫表
但問題是我根據TypeId來確定其俱樂部或學校。 所以在我的數據訪問查詢中,我必須提供案例。僞代碼是:
if TypeId == 1
search in club for the LocationId and get the clubId.
else if TypeId == 2
search in school for the LocationId and get the schoolId.
我該如何擺脫這些情況,仍然保持規範化的規則。
非常感謝您的閱讀。歡迎任何評論。 美好的一天!
不知道你是否需要'LOC_CONTAINER'表。你可以用'CLUB'和'SCHOOL'表將'left join'加入,只使用你需要的字段。 – keltar 2015-03-03 10:27:21
你的意思是完全擺脫LocationId?可否請您在解決方案中寫下查詢。 – ThomasBecker 2015-03-03 10:32:51
如何將您的SCHOOL和CLUB表合併在一起,並添加額外的列作爲TYPE來區分它們,在這種情況下,您也可以刪除LOC_CONTAINER。 – 2015-03-03 10:33:39