sql server 2005实现树形菜单显示的数据库表怎么设计?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2005实现树形菜单显示的数据库表怎么设计?相关的知识,希望对你有一定的参考价值。

参考技术A 第一种:单表。
列分别为 id、菜单名称、子菜单id列表;

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

优点:查询速度非常快。
缺点:不利于维护和拓展,在进行菜单项排序时需要再多写代码进行处理。

第二种:单表内连接。
列分别为 id、菜单名称、父菜单id;

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

优点:利于表结构的维护和拓展,并且符合设计范式;
缺点:在查询时会造成一些麻烦,并且性能上会受到影响。

当然还有很多其他的方法,这里只例举2个比较常用的方法。
参考技术B 用控件,简单,网上有相关的第三方控件!

已安装 SQL Server 2005,安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具

错误提示:已安装  SQL Server 2005 Express 工具。若要继续,请删除 SQL Server 2005 Express 工具。 

解决方案:

修改注册表:HKLM\Software\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM,把ShellSEM重命名即可。

64位路径:HKLM\Software\Wow6432Node\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM

以上是关于sql server 2005实现树形菜单显示的数据库表怎么设计?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 树形表非循环递归查询

sql server 2005安装时出现了这个问题,帮忙解决一下。

sqlserver查询树形结构的所有子节点

sql server怎么对树形结构表的节点进行拼接

sql server使用cte递归查询获取树形的父节点/子节点

如何显示 SQL Server LOGS (2005)