精华内容
下载资源
问答
  • 组织架构数据库表设计
    千次阅读
    2021-01-18 19:11:28

    部门的数据库设计要点:

    dept_idancestorsparent_idorder_numis_del
    • dept_id:部门编号
    • ancestors:记录从根节点开始,至父亲节点的所有祖先节点id,例如 0,1,5,20
    • parent_id:父亲节点编号
    • order_num:同层排序
    • is_del:逻辑删除

    这样设计有几个优势:
    1. 支持无限层级
    2. 支持层级排序,通过ancestor字段,高层在低层前面。查询某个节点的子节点如何处理?就是先查询到父节点,然后用父节点作为前缀,prefix% 即可。
    3. order_num是同层排序
    4. parent_id是层级结构时使用
    5. is_del逻辑删除,方面数据找回,避免对关联数据造成影响

    更多相关内容
  • 简洁明了的结构设计,适合开发者了解详细情况和查阅,项目经理针对初期需求进行数据整理和文档
  • 组织机构树数据库表设计

    千次阅读 2019-04-18 23:33:00
    公司需要做一个组织机构管理的系统,但是现有的数据库中存储的方式,机构之间的关联只是通过parent_id关联的,这样在查询的时候需要不断的递归查询数据,性能很差,逻辑也不清晰。所以在网上找到了几种针对这种...

    公司需要做一个组织机构管理的系统,但是现有的数据库中存储的方式,机构之间的关联只是通过parent_id关联的,这样在查询的时候需要不断的递归查询表数据,性能很差,逻辑也不清晰。所以在网上找到了几种针对这种树状结构存储,查询插入的优化方法

    1.发现几种树结构数据库存储方案

    2.聊聊树状结构如何在数据库中存储

    3.组织机构树设计 

    1.2两种有点复杂了,第三个连接有一位答主介绍了一种快捷查询的方法

     1 很麻烦的做法。
     2 简单的只需要在原表里加一列就行了:
     3 
     4 组织机构简洁字段设计:
     5 
     6 (ogran_code是组织机构唯一代码,真正的系统里都会有这东西的)
     7 
     8 id,name,ogran_code,parent_id
     9 
    10 快速查询字段设计:
    11 
    12 id,name,ogran_code,parent_id,code_link
    13 
    14 (code_link是从根到该机构的整个code链条,例如: "root_code"+"first_code"+"child_code")
    15 分隔符自定义即可
    16 添加编辑机构时只关注该机构的父机构,在父机构的link上添加本机构的部分:  "pareat_code_link"+"local_code"
    17 
    18 任何查询都可以通过这个字段快速完成。
    19 
    20 1,某机构所有子机构,查询所有包含某机构CODE的CODE_LINK即可。可以使用like,超级简单。
    21 2,查询Level,拆分该字段即可。
    22 
    23 总之,很方便记录的一个链路LINK,可以做到任意需要递归才可以完成的查询。

     

     

     用图表分析了一下

     

    • 当插入(1总公司)

      id  code_link

      1  0_null_null

    • 在(1总公司)下插入(2上海分公司),总公司的child_code为2,上海分公司的root_code为1

      id  code_link

      1  0_null_2

      2  1_null_null

    • 在(1总公司)下插入(3深圳分公司),总公司的child_code为2,3,上海分公司的root_code为1

      id  code_link

      1  0_null_2,3

      2  1_null_null

      3  1_null_null

    • 在(2上海分公司)下插入(4徐汇办事处),上海分公司的child_code为4,徐汇办事处的first_code为2

      id  code_link

      1  0_null_2,3

      2  1_null_4

      3  1_null_null

      4  1_2_null

    • 在(2上海分公司)下插入(5闵行办事处),上海分公司的child_code为4,5,闵行办事处的first_code为2

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_null

      4  1_2_null

      5  1_2_null

    • 在(3深圳分公司)下插入(6人事部),深圳分公司的child_code为6,人事部的first_code为3

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6

      4  1_2_null

      5  1_2_null

      6  1_3_null

    • 在(3深圳分公司)下插入(7财务部),深圳分公司的child_code为6,7,财务部的first_code为3

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_null

      5  1_2_null

      6  1_3_null

      7  1_3_null

    • 在(4徐汇办事处)下插入(8研发部),徐汇办事处的child_code 为8,研发部的first_code为2,4(带上徐汇办事处的first_code 2)

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_8

      5  1_2_null

      6  1_3_null

      7  1_3_null

      8  1_2,4_null

    • 在(4徐汇办事处)下插入(9市场部),徐汇办事处的child_code 为8,9,市场部的first_code为2,4(带上徐汇办事处的first_code 2)

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_8,9

      5  1_2_null

      6  1_3_null

      7  1_3_null

      8  1_2,4_null

      9  1_2,4_null

    • 在(9市场部)下插入(10市场调研小组),市场部的child_code为10,市场调研小组的first_code为2,4,9(带上市场部的first_code)

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_8,9

      5  1_2_null

      6  1_3_null

      7  1_3_null

      8  1_2,4_null

      9  1_2,4_10

      10   1_2,4,9_null

     

    至此,查询一个机构的子机构只需查询root_code和first_code中含有此节点id的数据

    例如,查询(2上海分公司)的子机构,则为4,5,8,9,10

    查询(4徐汇办事处)的子机构,则为8,9,10


      

    转载于:https://www.cnblogs.com/blog-cq/p/10733011.html

    展开全文
  • 一种多层级机构数据库表设计的思路

    万次阅读 热门讨论 2018-07-23 21:39:33
    在实际开发过程中,经常存在多个层级结构的设计,而且多个层级结构还需要排序。这里通过将多级结构的数据在同一张中(无需多张表进行关联),并通过level...1、创建部门架构表: CREATE TABLE department ( ...

    在实际开发过程中,经常存在多个层级结构的设计,而且多个层级结构还需要排序。这里通过将多级结构的数据在同一张表中(无需多张表进行关联),并通过level的巧妙设计来实现单表查询。

    level的设计原则:0.*.* 其中,0是顶级结构,第一个*是顶级结构下的结构,第二个*是顶级结构下的结构下的结构。

    举个栗子:

    1、创建部门架构表:

    CREATE TABLE department (
    	`id` BIGINT UNSIGNED  NOT NULL AUTO_INCREMENT,
    	`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '部门名称或下属机构名称',
    	`level` VARCHAR(255) NOT NULL DEFAULT '0' COMMENT '部门级别字符串',
    	`parent_id` BIGINT UNSIGNED NOT NULL COMMENT '父级主键id',
    	`seq` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '排序号',
    	`mtime` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
    	`ctime` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间',
    	`muser_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人',
    	`cuser_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建人',
    	PRIMARY KEY(`id`),
    KEY `idx_level` (`level`)
    )ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT '部门架构表';

    2、生成如下数据

    3、业务图对应如下

    level说明:

    UE(id是6)是属于前端开发(id是3),而前端开发是属于技术组(id是1),因此,UE的level是0.1.3 依次为顶级的id到最靠近自己的id。

     

    使用场景:

    比如:

    (1)如果想查询所有技术组下一级的架构,可以用如下sql语句:

    SELECT * FROM department WHERE `level` LIKE '0.1';

    (2)查询所有技术组下所有的架构包括下一级的下一级等等

    SELECT * FROM department WHERE `level` LIKE '0.1%';

    展开全文
  • 在实际开发过程中,经常存在多个层级结构的设计,而且多个层级结构还需要排序。这里通过将多级结构的...1、创建部门架构表: CREATE TABLE department ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `name...


    在实际开发过程中,经常存在多个层级结构的设计,而且多个层级结构还需要排序。这里通过将多级结构的数据在同一张表中(无需多张表进行关联),并通过level的巧妙设计来实现单表查询。

    level的设计原则:0.*.* 其中,0是顶级结构,第一个*是顶级结构下的结构,第二个*是顶级结构下的结构下的结构。

    举个栗子:

    1、创建部门架构表:

    CREATE TABLE department (
    	`id` BIGINT UNSIGNED  NOT NULL AUTO_INCREMENT,
    	`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '部门名称或下属机构名称',
    	`level` VARCHAR(255) NOT NULL DEFAULT '0' COMMENT '部门级别字符串',
    	`parent_id` BIGINT UNSIGNED NOT NULL COMMENT '父级主键id',
    	`seq` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '排序号',
    	`mtime` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
    	`ctime` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间',
    	`muser_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '修改人',
    	`cuser_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建人',
    	PRIMARY KEY(`id`),
    KEY `idx_level` (`level`)
    )ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT '部门架构表';

    2、生成如下数据

    3、业务图对应如下

    level说明:

    UE(id是6)是属于前端开发(id是3),而前端开发是属于技术组(id是1),因此,UE的level是0.1.3 依次为顶级的id到最靠近自己的id。

     

    使用场景:

    比如:

    (1)如果想查询所有技术组下一级的架构,可以用如下sql语句:

    SELECT * FROM department WHERE `level` LIKE '0.1';

    (2)查询所有技术组下所有的架构包括下一级的下一级等等

    SELECT * FROM department WHERE `level` LIKE '0.1%';


    ————————————————
    版权声明:本文为CSDN博主「timchen525」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/timchen525/article/details/81175224

     

    其他思路

    组织机构树数据库表设计

    公司需要做一个组织机构管理的系统,但是现有的数据库中存储的方式,机构之间的关联只是通过parent_id关联的,这样在查询的时候需要不断的递归查询表数据,性能很差,逻辑也不清晰。所以在网上找到了几种针对这种树状结构存储,查询插入的优化方法

    1.发现几种树结构数据库存储方案

    2.聊聊树状结构如何在数据库中存储

    3.组织机构树设计 

    1.2两种有点复杂了,第三个连接有一位答主介绍了一种快捷查询的方法

     1 很麻烦的做法。
     2 简单的只需要在原表里加一列就行了:
     3 
     4 组织机构简洁字段设计:
     5 
     6 (ogran_code是组织机构唯一代码,真正的系统里都会有这东西的)
     7 
     8 id,name,ogran_code,parent_id
     9 
    10 快速查询字段设计:
    11 
    12 id,name,ogran_code,parent_id,code_link
    13 
    14 (code_link是从根到该机构的整个code链条,例如: "root_code"+"first_code"+"child_code")
    15 分隔符自定义即可
    16 添加编辑机构时只关注该机构的父机构,在父机构的link上添加本机构的部分:  "pareat_code_link"+"local_code"
    17 
    18 任何查询都可以通过这个字段快速完成。
    19 
    20 1,某机构所有子机构,查询所有包含某机构CODE的CODE_LINK即可。可以使用like,超级简单。
    21 2,查询Level,拆分该字段即可。
    22 
    23 总之,很方便记录的一个链路LINK,可以做到任意需要递归才可以完成的查询。

     

     

     用图表分析了一下

     

    • 当插入(1总公司)

      id  code_link

      1  0_null_null

    • 在(1总公司)下插入(2上海分公司),总公司的child_code为2,上海分公司的root_code为1

      id  code_link

      1  0_null_2

      2  1_null_null

    • 在(1总公司)下插入(3深圳分公司),总公司的child_code为2,3,上海分公司的root_code为1

      id  code_link

      1  0_null_2,3

      2  1_null_null

      3  1_null_null

    • 在(2上海分公司)下插入(4徐汇办事处),上海分公司的child_code为4,徐汇办事处的first_code为2

      id  code_link

      1  0_null_2,3

      2  1_null_4

      3  1_null_null

      4  1_2_null

    • 在(2上海分公司)下插入(5闵行办事处),上海分公司的child_code为4,5,闵行办事处的first_code为2

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_null

      4  1_2_null

      5  1_2_null

    • 在(3深圳分公司)下插入(6人事部),深圳分公司的child_code为6,人事部的first_code为3

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6

      4  1_2_null

      5  1_2_null

      6  1_3_null

    • 在(3深圳分公司)下插入(7财务部),深圳分公司的child_code为6,7,财务部的first_code为3

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_null

      5  1_2_null

      6  1_3_null

      7  1_3_null

    • 在(4徐汇办事处)下插入(8研发部),徐汇办事处的child_code 为8,研发部的first_code为2,4(带上徐汇办事处的first_code 2)

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_8

      5  1_2_null

      6  1_3_null

      7  1_3_null

      8  1_2,4_null

    • 在(4徐汇办事处)下插入(9市场部),徐汇办事处的child_code 为8,9,市场部的first_code为2,4(带上徐汇办事处的first_code 2)

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_8,9

      5  1_2_null

      6  1_3_null

      7  1_3_null

      8  1_2,4_null

      9  1_2,4_null

    • 在(9市场部)下插入(10市场调研小组),市场部的child_code为10,市场调研小组的first_code为2,4,9(带上市场部的first_code)

      id  code_link

      1  0_null_2,3

      2  1_null_4,5

      3  1_null_6,7

      4  1_2_8,9

      5  1_2_null

      6  1_3_null

      7  1_3_null

      8  1_2,4_null

      9  1_2,4_10

      10   1_2,4,9_null

     

    至此,查询一个机构的子机构只需查询root_code和first_code中含有此节点id的数据

    例如,查询(2上海分公司)的子机构,则为4,5,8,9,10

    查询(4徐汇办事处)的子机构,则为8,9,10


      

    转载于:https://www.cnblogs.com/blog-cq/p/10733011.html

     


     

    展开全文
  • 谭怀远之Oracle海量数据架构设计思路讲解
  • 1.1 用户信息字段名类型注释idint(11) NOT NULL AUTO_INCREMENT用户ID,用户唯一标识account varchar(32)
  • 数据库表结构及索引设计

    千次阅读 2021-12-13 20:31:52
    数据库表设计 良好的结构设计是高性能的基石,应该根据系统将要执行的业务查询来设计,这往往需要权衡各种因素。糟糕的结构设计,会浪费大量的开发时间,严重延误项目开发周期,让人痛苦万分,而且直接影响到...
  • 系统架构设计-数据库系统知识点

    千次阅读 2021-07-04 13:53:03
    一、数据库的结构与模式 数据库技术中采用分级的方法将数据库的结构划分为多个层次。最著名的是美国ANSI/ SPARC 数据库系统研究组 1975年提出的三级划分法。 1. 三级模式 数据库系统的三级模式为外模式、概念模式、...
  • 数据库之多表设计

    千次阅读 2022-03-15 16:26:46
    有时候,为了业务,或者避免一张表中数据量过大,过复杂,在开发中会进行一对一方式来设计表。 二、 一对多(1方建主表(id为主键字段), 多方建外键字段) 一个实体的某个数据与另外一个实体的多个数据有关联关系...
  • SQL数据库表设计

    万次阅读 2019-05-08 18:09:46
    《SQL数据库表设计》 开发工具与关键技术:Visual Studio /SQL数据库 作者:肖春庆 撰写时间:2019年05月04日 数据库是一种存储数据的文件储物柜,用户可以以一定的方式存储并且对数据库里的数据进行新增、查询、...
  • 图书管理系统(Java + Mysql)课程设计源代码【带数据库+实训报告+MVC三层架构】 图书管理系统(Java + Mysql)我的第一个完全自己做的实训项目 图书管理系统 Java + MySQL 完整实训代码,MVC三层架构组织,包含所有...
  • 数据库设计的过程是将数据库系统与现实世界密切地、有机地、协调一致地结合起来的过程。 数据库的设计质量与设计者的知识、经验和水平密切相关。作为数据库应用系统的重要组成部分,数据库设计的成败往往直接关系到...
  • 文章目录MySQL数据库备份优化&数据架构设计1. 线上数据备份恢复策略实施1.1. 备份流程的设计1、考虑数据量:做备份⼯具... 数据库设计规范3.3. 数据库索引设计规范 MySQL数据库备份优化&数据架构设计 1. 线
  • 数据库——数据库结构设计

    千次阅读 2020-03-08 22:21:25
    概念设计 是数据库设计的 核心环节,通过对用户需求进行综合;归纳;与抽象,形成一个独立于DBMS 的概念模型 数据库概念设计的目标 1 定义与描述应用领域设计的数据范围 2 获取信息模型 3 描述数据的属性特征 4 描述...
  • ·如何优化和调整设计以便改善数据库的性能 ·理解良好的应用程序设计和数据库设计之间关联的技术 ·设计灵活、健壮的数据库方法以适应业务变化和发展 ·便于维护和技术支持的设计方法 ·避免常见的数据库设计错误的...
  • 人员-组织 结构 数据库关系设计

    千次阅读 2015-10-19 09:55:00
    1、严格按照数据库设计范式设计 2、为了实现快速查询某个组织下面所有的员工 3、上面的设计存在一个问题,对org的层级有限制   转载于:https://www.cnblogs.com/lhp2012/p/4891044.html...
  • 一、数据库设计方案 数据库设计是数据库应用系统开发的重要内容。在实现数据库之前,必须有明确的设计方案。 1. 数据库应用架构设计:单用户、集中、CS、分布 在不同应用需求场景中,数据库的应用架构方式是...
  • 学生管理系统数据库设计

    万次阅读 多人点赞 2021-07-04 15:48:15
    科学技术的进步和生产的发展使人类知识总量的增长不断加快,生产社会化趋势的扩大和社会对产品需求的多样性使得组织在营运活动中所涉及的内部和外部信息量迅速地膨胀起来。面对激烈的市场竞争,人们对这些信息进行...
  • MMP架构数据库

    千次阅读 2018-10-31 09:19:49
    架构数据库应具有的特征: ●  任务并行执行 ; ●  数据分布式存储 ( 本地化 ); ●  分布式计算 ; ●  私有资源 ; ●  横向扩展 ; ● Shared Nothing 架构。    
  • MySQL数据库程序设计(一)

    千次阅读 2021-09-01 23:09:17
    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
  • 实验三 数据库系统设计综合实验 1、实验目的 通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统。 2、实验要求 熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的...
  • 组织机构树型数据库结构

    万次阅读 2015-09-09 15:27:01
    数据库表结构主要是一个主键id,名称name,一个父级外键parent_id 比如 id name parent_id 1 汕头公司 null 2 计算机中心 1 3 人事部 1 类似这样,相信大家都能想到,添加,修改都很方便,但查询就出现一...
  • 数据库原理课程设计---停车场管理系统

    万次阅读 多人点赞 2020-12-15 11:39:45
    数据库原理课程设计---停车场管理系统 停车场收费管理系统是现代化停车场车辆收费及设备自动化管理的一个统称,是将停车场完全置于计算机统一管理下的高科技机电一体化产品。人们对停车场管理的要求越来越高,智能化...
  • 目录分布式数据库架构分布式数据库发展梗概关于数据库文件系统了解一下LSM-TreeB+Tree VS LSM-Tree第一代分布式数据库——分库分表及分布式中间件普通分布式中间件阿里OceanBase数据库第二代分布式数据库——NoSQL第...
  • mysql数据库架构设计与优化

    千次阅读 2019-04-23 20:51:20
    数据库设计规范数据库设计规范1. 数据库命名规范2. 数据库基本设计规范3. 数据库索引设计规范4. 数据库字段设计规范5. sql开发规范6. 数据库操作规范 数据库设计规范 1. 数据库命名规范 所有数据库对象名称必须使用...
  • MPP 架构数据库

    2018-04-11 16:52:55
    Greenplum是一种基于postgresql的分布式数据库。其采用shared nothing架构(MPP),主机,操作系统,内存,存储都是自我控制的,不...这个怎么感觉就像是把小数据库组织起来,联合成一个大型数据库。将数据分片,...
  • 在我们学习工作当中,树的这种结构已经屡见不鲜了,用的场景也很多 比如今天我为大家带来的...直接上张部门组织树的数据库设计组织部门 id 主键 name 名称 pid 父id level 层级 seq 在当前层级...
  • 五大优秀的数据库设计工具

    千次阅读 2021-05-21 09:21:00
    数据库设计的目的是把软件系统中大量的数据按一定的模型组织起来,以实现方便、及时地存储、维护和检索等功能,是软件系统开发和建设的关键和重要组成部分之一,因此数据库设计往往比较复杂,最佳设计不可能一蹴而就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,660
精华内容 58,664
关键字:

组织架构数据库表设计