2009-11-24 25 views
0

目前,我有一個數據庫對象,「空缺」其中有一列(外鍵)「CareerLevels」。指定多個類別到一個數據庫對象在ASP.net MVC

表「CareerLevels」在我的數據庫有CareerLevels的動態量,說3爲例。

現在我有我的空缺創建嚮導,其中,在某一點上,我有一些複選框的CareerLevels的頁面。我希望能夠將多個CareerLevels分配給我的空缺。對於一般的複選框生成和處理,我使用this topic中的方法。

所以我們希望有類似:

空缺X具有careerlevelsŸž。其中y和z位於數據庫表CareerLevels中。

已知方法

我知道我可以通過創建一個表像「VacanciesHavingCareerLevel」外鍵「Vacancy_id」和「CareerLevels_id」就像UsersInRole標準asp.net的MVC做到這一點框架。通過這種方式,我有一張聯合表格,記錄屬於我空缺的多個職業等級。在代碼中,您可以獲取並使用它。

雖然這意味着屬於您的數據庫對象(空缺)每個變量有多個選項,你都會有這樣的表,生成,於我而言,在10-15額外的表。

的問題

我不僅CareerLevels而且例如EducationLevels,JobTypes多。這樣我就不得不創建多個表格,如VacanciesJobtypes,VacanciesEducationLevels和VacanciesCareerLevels。我也有多個對象有這些東西。我有我的EducationLevels型材,Jobtypes,CareerLevels等含義剛生成的所有我的表乘以2,有這個時間ProfileCareerLevels等

真正的問題

這是正確的方式去還是應該我採用另一種模式?如果另一個模型excient,這是什麼衆所周知的模型?

+0

刪除MVC標籤,與MVC無關 – jfar 2009-11-24 16:02:06

回答

2

在我看來這是一個簡單的多對一對多的關係。一個「空缺」可以有一個或更多相關的職業等級。如果你想建立一個多對多的關係,你必須有一個連接表,正如你所建議的那樣。

我看不出有其他表的問題你的架構以支持這一點。確保正確設置索引和約束 - 例如,您可能希望將VacancyID和CareerlevelID作爲連接表中的複合主鍵。

+0

感謝您的答覆。我這麼認爲,但想要一些確認。既然你是第一個反應你的人是最終的。 @達米爾 不錯的照片,爲努力給予的積分:)。 – bastijn 2009-11-24 17:30:41

2

您的原創設計允許一個職業級別有許多職位空缺

career_model_00

如果你想要一個空缺有許多職業層次,則外鍵是在錯誤的表,應該是對「多」,像這樣:

career_model_01

問題的這是一個CARRI呃級別只屬於一個空缺,所以更好的解決辦法是:

career_model_02

沒有什麼錯在DB有「多表」。 ER模型允許您獨立管理實體(空缺,職業水平,教育),然後分配(管理)這些實體之間的關係。如果連接被視爲一個問題,只需設計幾個視圖。

相關問題