常见级联树结构的数据表设计

  在程序设计中我们经常会遇到具有级联关系的多级树结构,本文给出了一些case的常见设计方案,包括分类管理、三级地址管理和多级菜单

管理。

  Case中使用Oracle数据库做示例。

  从几个示例中可以看出,ID,NAME,PARENTID,PATH几个字段是通用的,其他字段根据需求扩展。其中PARENTID代表父节点ID,顶层父

节点可设为-1;PATH存储从顶层到叶子层路径,可以用斜杠间隔;因为不同数据库处理null值的策略不同,顶层的PATH我们不设为null,可设

为斜杠。

级联分类管理:

ID   NUMBER
NAME   NVARCHAR2(255 CHAR)
TYPE   NUMBER
PARENTID   NUMBER
PATH   NVARCHAR2(255 CHAR)

三级级联地址:

ID   NUMBER
NAME   NVARCHAR2(255 CHAR)
PARENT_ID   NUMBER
ADMINISTRATIVE_LEVEL   NUMBER
PATH   NVARCHAR2(255 CHAR)

导航多级菜单:

ID   NUMBER
NAME   NVARCHAR2(255 CHAR)
URL   NVARCHAR2(255 CHAR)
PARENT   NUMBER
SUB_SYS   NUMBER
ICON   VARCHAR2(255 BYTE)
PATH   NVARCHAR2(255 CHAR)

Edit by Jimmy

2014.09.17

时间: 2024-10-18 02:28:40

常见级联树结构的数据表设计的相关文章

【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计

        本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cnblogs.com/asxinyu/p/4329642.html 本篇文章开始将逐步介绍使用C#搭建足球赛事资料库与预测平台的相关细节.还是先从数据库开始,从本文开始将逐步对每个核心实体类和数据库设计相关的内容进行讲解,并公布源代码,至于能不能跑起来,看的看个人努力.由于没有时间将所有相关业务都简述

数据表设计的步骤

对需求进行分析,从而确定系统中所包含的实体. 所谓实体就是对象,比如商城项目中实体有用户.订单.商品等. 一般来说,每个实体相当于数据库的一个表 分别找出每个实体的所有与项目有用的属性 比如用户实体属性有:姓名.性别.年龄.身高.三围等.但是与商城项目有关的是姓名.性别,可能年龄,身高.三围作用不大. 保证每个实体有一个主属性,主属性必须能唯一地描述每个记录 确定实体之间的关系 根据实体.属性,画出每个实体ER图 设计局部ER模式 在设计初步E-R图时,要尽量充分地把组织中各部门对信息的要求集中

activiti 数据表设计

activiti数据表分为5个部分: 通用数据表.流程存储表.身份数据表.运行时数据表.历史数据表 1.通用(general)数据表 以ACT_GE开头 资源表-act_ge_btyearray: 用于保存与流程引擎相关的资源,如:字符串.流程文件内容.流程图片等 属性表-act_ge_property: 将属性抽象为key-value对.初始化流程引擎时会加入:historyLevel.next.dbid.schema.history和schema.version默认属性. 2.流程存储(re

SAP 常用业务数据表设计

表的要求表中使用的字段请尽量参照各模块的SAP字段标准使用习惯:  例:"ZXSLRZX销售组织对应的利润中心"中的销售组织应该使用VKORG.利润中心应该使用PRCTR.根据表的用途,需确定是否属于配置目的.还是业务目的.配置表的建议:需要加入MANDT字段  例: "ZQJQD缺件清单"就没有MANDT字段需提供相应的维护视图:例:如ZCHECK_MM01工厂和利润中心的对应为保证DEV/QAS/PRD系统的一致性,不应该对配置表提供批量维护的功能,而应该走Re

系统数据表设计

表和表之间的关系有三种:一对一(1:1).一对多(1:n).多对多(m:n); 1.一对一(1:1):略: 2.一对多(1:n)  1对表称作父表,n对应的表称作子表:  在表设计时候,在父表中添加子表的主键(id)作为连接子表的外键: 3.多对多(m:n)  需要创建一种中间表,并分别以两张表的主键作为这张中间表的字段:

工作流数据表设计

CREATE TABLE `bk_workflow` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL COMMENT '工作流的名字', `description` text NOT NULL COMMENT '描述', `addtime` int(11) NOT NULL DEFAULT '0' COMMENT '数据插入的时间', `code` varchar(20) NOT NULL COMMENT

销售,采购合同数据表设计

合同管理模块PowerDesgin设计 销售合同 采购合同:

MySQL数据表设计

1.数值类数据列类型 数据列类型 存储空间 说明 取值范围 TINYINT 1字节 非常小的整数 带符号值:-128~127 无符号值:0~255 SMALLINT 2字节 较小的整数 带符号值:-32768~32767 无符号值:0~65535 MEDIUMINT 3字节 中等大小的整数 带符号值:-8388608~8388607 无符号值:0~16777215 INT 4字节 标准整数 带符号值:-2147483648~2147483647 无符号值:0~4294967295 BIGINT

商品规则数据表设计

分成2张表:商品规格组表.商品规格参数表 比如商品规格组包括主体.基本信息.操作系统等等 那么主体的参数表里面就包括了品牌.型号.上市年份.上市月份等等. 商品规格组表一般包括ID.商品规格组名称.商品分类ID 商品规格参数表包括ID.参数名称.商品分类ID(可以传可以不传,传的话会单表关联,不传的话单表关联,建议传).规格组ID..数值类型的参数(是否为true).数值类型的单位(编辑的时候不确定是什么为单位,没有数值类型可以不填) 上面一般就可以了,如果要完整的话,还需要添加参数:是否搜索过