怎样设计树形目录的数据库用SQL

怎样设计树形目录的数据库用SQL,第1张

首先你要确定你所使用的DBMS产品,因为在ORACLE和SQL SERVER等DBMS的SQL语法有局部的不同,但大体上语句是一样的。

CREATE TALBE tmpDB (

tid int identity(1,1) primary key, --表主键,可以不用加not null一般使用了primary key就可默认为not null

tname varchar(100) not null, --节点名称

fatherID int --父节点ID

)

GO

生成树形数据结构

select

*

from

table

start with id = ?

connect by prior id = ?

第一种:单表。

列分别为 id、菜单名称、子菜单id列表

id:菜单的唯一编号

子菜单id列表:用逗号(或其他分隔符)分割的多个id的字符串,再由程序中进行处理,分割出多个id;

优点:查询速度非常快。

缺点:不利于维护和拓展,在进行菜单项排序时需要再多写代码进行处理。

第二种:单表内连接。

列分别为 id、菜单名称、父菜单id

根节点的父菜单id为null或者0等一个可以唯一标志的。在查询时进行表内连接查询;

优点:利于表结构的维护和拓展,并且符合设计范式;

缺点:在查询时会造成一些麻烦,并且性能上会受到影响。

当然还有很多其他的方法,这里只例举2个比较常用的方法。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6813058.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存