如何对这个模式进行分类?
How to classify this schema?
我有这样的架构:
这个方案的本质是组织了一些公司所有产品的入口点,提供了一些灵活性。
工作原理:
- 我们在 table "tables" 中创建一个 table 的列表(其中
name
是数据库中 table 的名称,pk_name
是这个table) 的主键名
- 我们在 "products" 中创建一个产品列表(其中
table_id
是 "tables" 中的 table 标识符,pk_value
是主要的值键)
- 此外,我们还创建了 table,如 "some_product"、"another_product" 等。它们包含特定产品的不同字段
问题是:
- 这样的方案怎么称呼?例如,EAV 还专为
数据库灵活性,但在 EAV 中,列作为记录存储在
数据库。
- 因此,我不明白将此方案与 EAV 进行比较是否可取?
- 这个模式有哪些类比,了解什么更好用?
- 这种模式有什么缺点?
我是DB的新手,所以我希望我的问题不是愚蠢的。
谢谢!
在示例中,您显示 some_product
和 another_product
table 具有相同的属性和类型。在这种情况下最好有一个产品 table。如果不同的属性适用于不同 table 中的不同类型的产品,那么这就是 子类型 .
的示例
所有产品共有的属性将归入公共 products
table(超类型 table)。我希望在 table 中看到一个产品类型属性来区分不同类型的产品。
tables
table 是不必要的。所有 DBMS 都提供对有关 table 和主键的元数据的访问,因此没有理由在您自己的 table.
中捕获它
我有这样的架构:
这个方案的本质是组织了一些公司所有产品的入口点,提供了一些灵活性。
工作原理:
- 我们在 table "tables" 中创建一个 table 的列表(其中
name
是数据库中 table 的名称,pk_name
是这个table) 的主键名
- 我们在 "products" 中创建一个产品列表(其中
table_id
是 "tables" 中的 table 标识符,pk_value
是主要的值键) - 此外,我们还创建了 table,如 "some_product"、"another_product" 等。它们包含特定产品的不同字段
问题是:
- 这样的方案怎么称呼?例如,EAV 还专为 数据库灵活性,但在 EAV 中,列作为记录存储在 数据库。
- 因此,我不明白将此方案与 EAV 进行比较是否可取?
- 这个模式有哪些类比,了解什么更好用?
- 这种模式有什么缺点?
我是DB的新手,所以我希望我的问题不是愚蠢的。
谢谢!
在示例中,您显示 some_product
和 another_product
table 具有相同的属性和类型。在这种情况下最好有一个产品 table。如果不同的属性适用于不同 table 中的不同类型的产品,那么这就是 子类型 .
所有产品共有的属性将归入公共 products
table(超类型 table)。我希望在 table 中看到一个产品类型属性来区分不同类型的产品。
tables
table 是不必要的。所有 DBMS 都提供对有关 table 和主键的元数据的访问,因此没有理由在您自己的 table.