我不確定完全如何將這個問題說出來,所以我會解釋我在想什麼。我以前有設計數據庫的經驗,但實際上還沒有決定我想如何實現這個或者之前運行過這個。我會解釋我在想什麼作爲一種顯示方式,我已經想到了這一點...數據庫設計:多個相同類型的項目
我創建了一個數據庫,將存儲用戶的信息,像一個簡歷(這是一個副項目爲一羣大學生)。我遇到的問題是如何處理存儲大量技術技能的問題,可能是每個用戶20+以上的順序以及他們的熟練程度
想法一:一個巨大的表格,包含TechSkill1列 - > 20.隨着他們的熟練程度。使用用戶ID作爲FK與所有這些關聯。 優點:最簡單的工具,最簡單的前端。 缺點:限於20個技能,很多潛在的空值,過大的尺寸
想法二:一個大文本輸入的表格,所有技能都在一個文本對象中,用逗號或| |等一些字符分隔。另一個精通專欄也以同樣的方式劃定界限。再次,USERID作爲FK。 優點:易於實現,小桌子大小,易於在前端獲得信息 缺點:浪費大量空白空間的可能性,需要在商店前面進行更多的編碼,然後再進行檢索。
想法三:小桌子的技巧和熟練的專欄。然後創建多個行來關聯每個USERID 優點:最小的表和最乾淨。節省最多的空間 缺點:前端實現將很有趣,因爲在如何處理無限數量的條目的多個領域(不是我的東西,但我不想爲前端傢伙創造太多問題)
這些是我的三個想法,我不完全確定什麼是最好的......我問你們。所有的意見將不勝感激。
謝謝!實現這個數據庫級別
-Jabsy
所以這個實現我的SQL從我Skill_prof表基於我user_ID的選擇,然後使用從返回映射到我的能力和相應的技能,因爲他們都將在同一個元組? 編輯:另外,我正在使用MYSQL – Jabsy 2011-02-24 08:55:43
您可以使用數據庫加入,並通過1查詢選擇它到數據庫。例如,如果你想具體的用戶和他的技術名稱和熟練的名字,你會用:SELECT users.name,skills.name,prof.name從skill_prof SP內部聯接用戶us.id = fk_userid內部聯接上sp.fk_skill_id =技能技巧.id內部連接熟練prof.id = sp.fk_proficiencyid prof.id其中users.id =您的ID請選擇 – 2011-02-24 09:12:26
非常感謝! – Jabsy 2011-02-24 09:19:59