【问题标题】:Database tables for entries of another table?另一个表的条目的数据库表?
【发布时间】:2025-12-03 17:25:01
【问题描述】:

我正在设计我的 Java 应用程序的新版本(使用嵌入式 H2 数据库),以重新设计我处理数据的方式。这是我的计划:

  • 条目表-
    • 条目 ID
    • 条目名称
  • 属性表-
    • 属性 ID
    • 属性名称
  • (个人财产)价值表-
    • 值 ID
    • 条目 ID
    • (值列...)
  • (个别条目)值表-
    • 属性名称
    • (个人财产)价值ID

每个条目可以有多个属性(包括相同类型的多个属性)。每个属性都有自己的存储值的方式。我需要查找为给定条目定义的所有属性,可能还有每个给定属性的所有条目。

这是一个好方法吗?

编辑:我不确定我是否解释得很好......

【问题讨论】:

    标签: java database h2


    【解决方案1】:

    在我看来,这是一种非常糟糕的数据建模方式,但这是一种非常象牙塔式的看待情况的方式,因为我不必在实践中使用这种模型。顺便说一句,它被称为“实体-属性-值”方法。我不喜欢它的原因是它非常不像模式,因为大多数 SQL 功能必须以某种方式复制。

    肯定有时间和地点(例如,如果您打算对许多具有不同模型的对象进行建模)或具有经常更改的模式的对象。但我个人认为这很糟糕。

    【讨论】:

    • 是的,我很警惕使用它意味着什么。谢谢你给我起个名字。
    【解决方案2】:

    如果我理解正确,我会使用交集或junction 表而不是您所描述的。

    因此,您可以创建一个查询来获取每个 Entery 的所有属性,或每个属性的所有 Enteries。

    【讨论】:

      【解决方案3】:

      我同意 Unknown Google。这也称为Inner-platform effect

      【讨论】:

        最近更新 更多