【发布时间】:2013-04-12 02:32:34
【问题描述】:
我对数据库有以下要求。它需要能够 存储物品。项目有一个 id、标识符和标题。每个项目可以有零 或多个小部件和零个或多个 dodads。每个小部件和每个 dodad 都有一个 标题和类型。 Dodads 也有一个默认值。还有顺序 小部件和 dodas 需要保存。
我有以下表格可以做到这一点:
items widgets dodads
----- ------- ------
id id id
ident itemId itemId
title title title
type type
order order
default
所以现在我希望能够拥有继承权。很简单,加个 parentId 到 items 表。现在的问题是小部件中的订单列 和 dodad 表。
继承的顺序应该在父项必须在 tha 中有效 与父级相同的顺序,但子级的项目可以是interwhoven。那是 类似以下的东西应该是可行的:
P1
P2
C1
C2
P3
P4
C3
所以问题是如何存储小部件和 dodads 的整体顺序?一世 假设我需要另一张桌子,但不确定最好的方法。这将是 如果表结构可以处理多个父母,那就太好了。
【问题讨论】:
-
引入一个
Level{0, 1, 3, ...} -- 节点离根有多远;对于同一级别的节点,例如 {1.1, 1.2 ..}。顺便说一句,添加ParentID来创建树是一种“幼稚的方式”;搜索nested sets, closure table, path enumeration, levelled hierarchy..
标签: mysql database-design