为自动完成功能设计数据库的最佳方法。 我有以下用例(使用技术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