2014-11-04 25 views
0

爲自動完成功能設計數據庫的最佳方法。 我有以下用例(使用技術JAVA,SPRING,HIBERNATE,Mysql):爲自動完成功能設計數據庫的最佳方法

我有與技能相關的專業細節(多對多關係)。

public class ProfessionalDetailsDTO { 

    private Integer professionalId; 
    //many to many 
    private List<SkillsDTO> profileSkills; 

    setter and getter ... 

} 


public class SkillsDTO { 
    private String skillName; 
    private Integer skillRating; 
    private Integer skillId; 

    setter and getter 
} 

現在從UI當我輸入型技能我應該得到有效的技能建議(如Java,休眠)。人們可能會保存假人技能或技能表突然值 (例如,XYZ),所以我不t想要在autoComplete中顯示這個建議。

我能想到以下方法眼下的: -

方法1:有四張桌子下面

1.ProfessionalDetails

column:professionalId 

2如上。技能 專欄:SkillId ,skillName,skillRating

3.Professional_Skills 柱:skillId,professionalId

4. PreDefinedSkill 列:ID,SkillName

是否BestPractice多了一個表,預定義的技能,將用於AutoSuggestion和SkillName從 獲取的預定義Table將被存儲在技能表中?

缺點:技能名稱將在技能列表中重複。

方法2:在這種方法中SkillRating移動到professional_Skills表和Skillname是skillTable 這裏我SkillDTO映射到Tables.I必須使用annotaion如@SecondaryTable獨特。

1.ProfessionalDetails 柱:professionalId

2.Skills 柱:SkillId,skillName

3.Professional_Skills 柱:skillId,professionalId ,, skillRating

方法3 方法3。與方法2相同而不是使用hibernate註釋使用查詢來插入到professional_Skills表中。

請推薦我一些最好的行業實踐來實現上述用例 在此先感謝。

+0

這很寬泛,你可能想要重寫一下 – 2014-11-04 21:15:18

+0

:)雅我列出了三種方法在我腦海裏。只要想得到一些亮點上述方法希望你能提供幫助。 – user3909389 2014-11-04 21:17:58

回答