爲自動完成功能設計數據庫的最佳方法。 我有以下用例(使用技術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表中。
請推薦我一些最好的行業實踐來實現上述用例 在此先感謝。
這很寬泛,你可能想要重寫一下 – 2014-11-04 21:15:18
:)雅我列出了三種方法在我腦海裏。只要想得到一些亮點上述方法希望你能提供幫助。 – user3909389 2014-11-04 21:17:58