【问题标题】:Hibernate composite pattern designHibernate复合模式设计
【发布时间】:2015-05-04 07:19:00
【问题描述】:

我正在为层次结构设计数据库表,如下图所示。没有递归依赖,因此没有固定级别。只有 Group1 的存在阻碍了设计。在层次结构中,只有 Item4 和 Item5 的父级为 Group1,其余所有 Item 的父级为 System。

请求您的反馈和建议。

我设计的表格如下:

站点表 - SiteId (PK)

系统表 - SystemId (PK)、SiteId(FK)

项目表 - ItemId(PK)、SystemId(FK)

组表 - GroupId(PK)、ItemId(FK)

在上面的设计中,我打算使用传递属性来识别Item4和Item5属于Group1。

这个设计好不好?或有什么建议?还要在 Hibernate 中请求查询建议。

【问题讨论】:

    标签: java mysql sql database hibernate


    【解决方案1】:

    由于ItemGroup 处于同一级别并关联到同一System,我将使用继承来映射它们的关系:

    因此,您可以拥有一个由ItemGroup 扩展的AbstractItem 基类,但只有Group 还具有与one-to-many 关联的Item

    系统多对一关联可以驻留在AbstractItemJOIN 继承模型可能比 SINGLE_TABLE 更适合您的用例。

    【讨论】:

    • 虽然可以解决,但是感觉继承层次不合逻辑,因为Group不是Item类型的吧?
    • 这就是我介绍他们的基类的原因,为了清楚起见可以将其命名为Component。
    猜你喜欢
    • 2012-02-22
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多