【问题标题】:How to classify this schema?如何对该模式进行分类?
【发布时间】:2018-10-01 13:00:19
【问题描述】:

我有这样的架构:

这个方案的本质是组织某家公司所有产品的入口点,提供了一定的灵活性。

它是如何工作的:

  1. 我们在表“tables”中创建一个表列表(其中name是数据库中的表名,pk_name是这个表的主键名)
  2. 我们在“products”中创建一个产品列表(其中table_id是“tables”中的表标识符,pk_value是主键的值)
  3. 此外,我们还会创建“some_product”、“another_product”等表。它们包含特定产品的不同字段

问题是:

  1. 如何调用此类方案?例如,EAV 还设计用于 数据库灵活性,但在 EAV 列中存储为记录 数据库。
  2. 因此,我不明白是否可以将此方案与 EAV 进行比较?
  3. 此架构有哪些类比,以了解什么更好用?
  4. 这种架构有什么缺点?

我是DB新手,所以希望我的问题不是愚蠢的。

谢谢!

【问题讨论】:

    标签: database database-design relational-database entity-attribute-value


    【解决方案1】:

    在示例中,您显示some_productanother_product 表具有相同的属性和类型。在这种情况下,最好有一个产品表。如果不同的属性适用于不同表中不同类型的产品,那么这就是 subtyping 的一个示例。

    所有产品共有的属性将放在公共products 表(supertype 表)中。我希望在该表中看到产品类型属性来区分各种类型的产品。

    tables 表是不必要的。所有 DBMS 都提供对有关表和主键的元数据的访问,因此没有理由在您自己的表中捕获这些元数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 2011-12-17
      • 2012-03-18
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      相关资源
      最近更新 更多