SQL Schema分析:AdventureWorks的ProductCategory中loop的目的是啥?

Posted

技术标签:

【中文标题】SQL Schema分析:AdventureWorks的ProductCategory中loop的目的是啥?【英文标题】:Analysis of SQL Schema: what is the purpose of loop in ProductCategory of AdventureWorks?SQL Schema分析:AdventureWorks的ProductCategory中loop的目的是什么? 【发布时间】:2017-05-17 11:03:48 【问题描述】:

我想了解 ProductCategory 表中循环的目的。 AdventureWorks 是 Microsoft 提供的示例数据库here。 AdventureWorks的ProductCategory表为什么会有循环?

来自 Microsoft SQL Server Management Studio 的图表,其中循环位于右侧

图表(现在称为参考图表,处于层次结构模式,由 Db Vis 生成)其中循环位于右下角

【问题讨论】:

【参考方案1】:

我假设存在循环以表明产品类别是分层的。如果您查看表定义,您将看到以下两个字段,它们可以提示我们:

ProductCategoryID
ParentProductCateogoryID

如果我理解正确,这些行通常代表父外键关系。这些关系还指示我们可以将两个表连接在一起的位置。对于ProductCategory 表,我们实际上可以使用自连接将这个表连接到自身。这就是我们查询类别层次结构的方式。

【讨论】:

分层类别是否意味着每个类别在每个列类别中也是分层的,例如 ProductCategoryID 和 ParentProductCategoryID?还是仅表示 ParentProductCategoryID 的层次结构超过 ProductCategoryID?或者它可以是两种或一种组合?一个自引用循环对表格也有其他含义吗? 我不明白你的问题。正如我所说,我相信这意味着产品类别是分层的,ProductCategory 表可以自连接以获得产品层次结构。

以上是关于SQL Schema分析:AdventureWorks的ProductCategory中loop的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL insert语句锁分析

第25天SQL进阶-查询优化- performance_schema系列实战二:锁问题排查(全局读锁)(SQL 小虚竹)

基于PySpark的航天日志分析(SQL分析)

第26天SQL进阶-查询优化- performance_schema系列实战二:锁问题排查(MDL锁)(SQL 小虚竹)

第26天SQL进阶-查询优化- performance_schema系列实战二:锁问题排查(MDL锁)(SQL 小虚竹)

第25天SQL进阶-查询优化- performance_schema系列实战二:锁问题排查(全局读锁)(SQL 小虚竹)