在数据库中使用子组
Use subgroups in databases
我目前正在寻找在数据库中使用子组的最佳方式。
正如您在图片中看到的,"Block" 对象可以是 "Calendar"、"Survey" 或 "Gallery" 对象。每个对象都有不同的结构。
在 MySQL 或 Cassandra 等数据库中使用以下结构的最佳方法是什么?
有几种选择:
Single Table Inheritance:一个 table 用于所有产品类型,具有足够的列来存储所有类型的所有属性。这意味着很多列,其中大部分在任何给定行上都是 NULL。
Class Table Inheritance:一个table用于Products,存储所有产品类型共有的属性。然后每个产品类型一个 table,存储特定于该产品类型的属性。
Concrete Table Inheritance:通用产品属性没有 table。相反,每个产品类型一个 table,存储通用产品属性和特定于产品的属性。
这些是从我的一个旧答案中复制的:
与往常一样,"best" 解决方案取决于您查询数据的方式。
我目前正在寻找在数据库中使用子组的最佳方式。
正如您在图片中看到的,"Block" 对象可以是 "Calendar"、"Survey" 或 "Gallery" 对象。每个对象都有不同的结构。
在 MySQL 或 Cassandra 等数据库中使用以下结构的最佳方法是什么?
有几种选择:
Single Table Inheritance:一个 table 用于所有产品类型,具有足够的列来存储所有类型的所有属性。这意味着很多列,其中大部分在任何给定行上都是 NULL。
Class Table Inheritance:一个table用于Products,存储所有产品类型共有的属性。然后每个产品类型一个 table,存储特定于该产品类型的属性。
Concrete Table Inheritance:通用产品属性没有 table。相反,每个产品类型一个 table,存储通用产品属性和特定于产品的属性。
这些是从我的一个旧答案中复制的:
与往常一样,"best" 解决方案取决于您查询数据的方式。