觉得现在知道的不是很满意,求大侠给教个,
比如商品分类表的父子关系,
我现在用的 100000000,100001000 , 100001001
因为是分的三级,所以以3位为一级,根据父类查询子类时用like ‘100%’ ,like '100001%'
但这样级数就太死了,本来想过用一种树形结构,叫什么忘了,请理解,但维护性太难,而且不会操作,操作一个所有的都得动,要是一个出问题,整个分类就完了,所以不敢用
求大侠们救救虾米我把,>_<
老兄,ID,Name, ParentID,Level,三个字段就可以描述树形结构了。其他业务信息可以额外添加。这四个是主要的。我看你的问题是想快速查询而已。
如果用Oracle,可以参考以下示例:
TB_ORGAN表定义:
ORG_ID (节点ID)
ORG_NAME (节点名称)
ORG_PARENTID (父节点ID)
ORG_LEVEL (节点级别)
1.根据子类查其父类:
根据某个子节点的ID,选择其某个级别(例如Lev001)的父节点的SQL脚本:
SELECT ORG_NAME from TB_ORGAN WHERE ORG_LEVEL = 'Lev001' CONNECT BY ORG_ID = PRIOR ORG_PARENTID START WITH ORG_ID = '某个子节点的ID' AND ROWNUM = 1
2.根据父类查其子类:
SELECT ORG_ID, ORG_NAME, ORG_PARENTID from TB_ORGAN CONNECT BY ORG_PARENTID = PRIOR ORG_ID START WITH ORG_ID = '某个父节点ID'
上边这条语句,你也可以增加where条件,增加子节点级别,这样可以只查询某个级别的子节点。
好了,兄弟,这样的设计可以彻底解决树形结构的查询问题了吧。至于你想把Level如何定义,看你自己需求了,可以定义一些特征,这样加快查询速度。呵呵
id,parentid,name
百度一下广度查询
哥……
哥 你很牛撒