【问题标题】:Best Way to Design database for AutoComplete Functionality为自动完成功能设计数据库的最佳方法
【发布时间】:2014-12-31 22:04:29
【问题描述】:

为自动完成功能设计数据库的最佳方式。 我有以下用例(使用技术 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 当我键入 Type Skills 时,我应该得到 Valid Skills Suggestion(如 JAVA、Hibernate)。人们可能会保存 Dummy Skills 或突然的值 (例如 XYZ )在技能表中,所以我不想在自动完成中显示这个作为建议。

我现在可以想到以下方法:-

方法一:如下所述有四个表

1.专业详情

column:professionalId

2.技能 列:SkillId、skillName、skillRating

3.Professional_Skills 栏目:skillId,professionalId

4.预定义技能 列:id,技能名称

最好为预定义技能提供一张表,用于自动建议和从 预定义的表会存储在技能表中吗?

缺点:技能名称将在技能表中重复。

方法 2: 在此方法中,SkillRating 被移至专业技能表,并且 Skillname 在技能表中是唯一的 这里我必须将 SkillDTO 映射到 Tables。我必须使用注解,例如 @secondaryTable。

1.专业详情 列:专业ID

2.技能 列:SkillId,skillName

3.Professional_Skills column:skillId,professionalId,,skillRating

方法 3 。与方法 2 相同,但不使用休眠注释,而是使用查询插入到专业技能表中。

请给我一些最佳行业实践来实现上述用例 提前致谢。

【问题讨论】:

  • 这很笼统,您可能需要改写一下
  • :) 是的,我列出了三种我想到的方法。只是想在上述方法中获得一些亮点希望你能提供帮助。

标签: java mysql spring hibernate database-design


【解决方案1】:

以下链接中描述了实现上述用例的最佳解决方案(即多对多与附加列): http://en.wikibooks.org/wiki/Java_Persistence/ManyToMany 发布此内容可能对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2019-06-27
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多