2016-08-04 82 views
1

我工作的一個系統,我哈瓦表用於存儲學生的語言能力,以管理這個我們創建了以下建築上: 多對多的關係優化

表STD_LANGUAGE_COMPETENCIES代表着關聯實體。在STD_LANGUAGE(法語,英語,阿拉伯語...)表和STD_LANGUAGE_SKILL(閱讀,說話,寫作,教學)之間存在多對多關係的問題是STD_LANGUAGE和STD_LANGUAGE_SKILL不是由系統的普通用戶更新的( 學生),他們是由系統管理員添加的,當我嘗試爲學生提取語言能力時,體系結構要求我在兩個表上進行連接,以獲取語言名稱和技能名稱。 有無論如何優化這個模式。

+0

您是否考慮創建視圖? –

+0

我正在構建一個API –

回答

2

如果語言技能是例如:「閱讀」,「寫作」,「對話」等等,沒有名稱隱藏,沒有時間限制的技能和管理客戶端模塊,您可以直接將描述在STD_LANGUAGE_COMPETENCE表中,並刪除外鍵約束,同時保留組合項目的技能表以分配或搜索(通過文本)。

這樣就可以避免一個加入..

0

如果你有一對多的關係或多對多的關係。您無法避免連接遵循SQL中的規範化結構。