Database design 如何为需要快速读取的树状数据结构选择合适的存储技术和设计
我需要设计一个树状数据结构,子实体可以继承或覆盖父实体的值Database design 如何为需要快速读取的树状数据结构选择合适的存储技术和设计,database-design,relational-database,Database Design,Relational Database,我需要设计一个树状数据结构,子实体可以继承或覆盖父实体的值 客户 实体 渠道 若您可以想象上述三个实体,其中客户端位于0级,实体位于1级,通道位于2级。实体级项目可以从客户端级继承或覆盖属性,通道可以从其实体级父级继承或覆盖属性 我还需要将频道细分为多个组,每个频道可以从特定的日期时间开始生效。因此,如果我进行查询以获得一个特定的通道,我将传递当前的时间实例,并且需要返回第一个小于输入datetime参数的项目 希望树的深度设置为3,并且不会有任何扩展。我的问题是,设计这种数据
- 客户
- 实体
-
- 渠道
- 如果您想要关系型的,肯定有三个表:一个表会很可怕,因为它没有标准化
- 我给您的主键(
,客户端
,实体
)是用户用于识别其数据的短名称或代码。在第二和第三个表中,它们是复合材料。这样的钥匙很快频道
- 即,它不是代理项,例如
。代理项始终是一个附加的列和一个附加的索引,这会使表明显变慢。更不用说,所需的代码将是错误和混乱的记录ID、ID、ID
- 即,它不是代理项,例如
- 这对于您的问题级别来说已经足够了,导航结构所需的SQL代码非常简单
- 为了满足属性的“继承或重写”,我可以提供一个更规范化的设计,它将没有空列,但是它需要稍微复杂一些的SQL代码,这可以通过使用视图来简化。请问
- 我所有的数据模型都在中呈现,这是自1993年以来建立关系数据库模型的标准
- 我的是初学者的必备读物