【发布时间】:2016-10-10 10:18:53
【问题描述】:
我想像这样创建深度未知的分层数据:
创建类别和子类别,对于这些子类别,它们还将具有子类别等等。
子类别的深度是未知的,只会由用户在运行时完成。
我的想法是将它们全部放在一个表中,并有一个父列保存父类别的 ID,如下所示:
我不知道这是否是正确的方法,但我看不到任何其他方法。
我进行了快速搜索,发现与数据库表设计没有直接关系。
我使用的是 MS SQL Server 2012
【问题讨论】:
-
这似乎是一个常见的问题。有没有使用此设计无法回答的问题?维护数据呢?
-
你可能会读到HIERARCHYID。通常,您会将所有行存储在一个表中并连接回父表。这样的结构非常笨拙……
-
@Shnugo 加入回来的意思和我在问题中提到的一样吗?
-
@MuhammadNourm 是的。这是常见的设计。
-
@Shnugo 那么还有其他更好的方法吗?
标签: sql-server database-design hierarchical-data