mysql 自连接 树形_自连接表的相关问题(树形结构)
问题一:
自连接表肯定是相似 Id(PK),parentId(FK),name ….了
Id假如是主键的话,parentId就是外键了,
可是树形结构肯定是有根节点了,那么根节点的parentId按理说应该是null,原因是根节点没有父节点,
可是主键Id是不能为空的啊,导致外键parentId也不能为null,那本人输入数据的时候怎么办呢?
问题二:
本人为了避免问题一中的麻烦,本人单独弄了个uuid主键ID,而然后是唯一索引Bh(编号),然后是上级编号parentBh
也就是自连接表项为 ID(PK),Bh(unique),parentBh(FK),name…
这样以来,外键parentId就可以为null了,也就实现了树形结构根节点的父节点为null了。
本来还挺高兴,但是网上有人说本人这么设计数据库根本不合理,说外键就应该关联主键,真的是这样么,那本人说的问题一怎么样解决呢?本人看很多人定义自连接表,parentId都default null,却不设置为外键,这样根节点的parentId的确默认为null了,可是他们这样岂不是就不能用数据库自带的级联操作了么?只能程序控制parentId和Id的一致性了吧?
问题三:
一开始本人是按照问题二描述的那样设计的数据库表,可是后来本人发现,假如是两张表有主外键关联关系的话,本人修改或删除主表的唯一索引,从表的外键会自动修改或删除/set null。
可是假如是自连接表的话,就只能级联删除/set null, 却不能级联更新,这是为什么呢?一修改唯一索引就报错。
问题四:
由于本人不会在hibernate配置文件里(hbm.xml文件)配置主外键关联,所以只能像以前那样写个基本的pojo和.hbm.xml,然后生成数据库表,最后本人在数据库中设置的外键关联,现在使用没出现什么错误,问一下是不是可以这样,而不必非得把hibernate配置中也加上 和之类的配置呢?
问题五:问一下假如客户想要看到数据库表中数据的树形结构,不知道这样的形式能否容易实现呢?
请有耐心、有经验的高手们帮帮小弟吧!
解决方案
40
呵呵,关键是你的父ID可以为空呀。你的思路有问题了。
CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明自连接表的相关问题(树形结构)!
mysql 自连接 树形_自连接表的相关问题(树形结构)相关推荐
- mysql 多级分类_数据库多级分类相关行排列在一起的查询
我用的数据库是mysql. 在做后台分类管理的时候遇到这样一个需求 就是将分类以树形菜单的方式展现出来. 我的导航栏的表在数据库中是这样的 然后,经过初步的sql查询,实现的效果是下面这样的,下边有s ...
- Mysql优化原则_小表驱动大表IN和EXISTS的合理利用
//假设一个for循环 for($i = 0; $i < 10000; $i++) { for ($j = 0; $i < 50; $j++){} }for($i = 0; $i < ...
- mysql创建表格1warning_MySQLMySQL创建表及相关约束
第一个表创建: create table class( cid int not null auto_increment primary key, caption char(20) not null ) ...
- mysql 收入支出_支出表和收入表生成收支流水表的问题
收入表a id harvest 1 300 2 500 支出表b id pay 1 -100 2 -150 希望生成的流水表c 发生金额 ...
- mysql迁移、备份数据表,导出表数据与结构
在服务器上部署的爬虫成功的爬取了一些数据,现在需要把这个表迁移到另一台主机 mysql -u 用户名 -p 输入密码后进入mysql命令行: #显示数据库的表 show databases; use ...
- mysql 向下兼容_前言本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5...
前言 本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+ ...
- MySQL笔记:第06章_多表查询
第06章_多表查询 多表查询概述 1.一个案例引发的多表连接 1.1 案例说明 1.2 笛卡尔积(或交叉连接)的理解 演示代码 2. 多表查询分类讲解 分类1:等值连接 vs 非等值连接 等值连接 非 ...
- 【MySQL笔记 第06章_多表查询】
第06章_多表查询 多表查询概述 1.一个案例引发的多表连接 1.1 案例说明 1.2 笛卡尔积(或交叉连接)的理解 演示代码 2. 多表查询分类讲解 分类1:等值连接 vs 非等值连接 等值连接 非 ...
- MySQL—通过Adjacency List(邻接表)存储树形结构
转载自:Mysql通过Adjacency List(邻接表)存储树形结构 今天来看看一个比较头疼的问题,如何在数据库中存储树形结构呢?像mysql这样的关系型数据库,比较适合存储一些类似表格的扁平化数 ...
最新文章
- 阿里云云效何勉:云原生是“精益实践”的最佳助力
- linux看网络电影,Linux中看电影、听音乐
- python怎么查询帮助信息_Python 查看模块的帮助文档,方法和帮助信息
- 批量域名解析为IP地址
- 浅谈Linux管线命令grep
- html中加入emjio表情,jqueryemoji表情插件
- Maven的依赖与最佳配置(转载自Maven实战 作者许晓斌)
- html5音乐背景图,HTML5 Audio 麦克风操控+钻石背景图案
- echarts飞线图
- 项目总结 :木门app(2015.4.10 —— 2015.5.8)
- 什么是分布式系统,这么讲不信你不会
- PACS医学影像DICOM dcmdictpath知识记录梳理
- OpenCV3的GPU模块编译
- PostgreSQL函数——数值函数
- 永久解决Linux(Ubuntu)下安装CH340驱动问题
- NodeJS_06_Mysql_Promise_json-server_http-server
- 遥感识别3——遥感图像数据集大全
- 全班练MATLAB,精讲多练MATLAB
- 让你大开眼界的6个超惊人机械假肢,AI加持下还能怎样进化?
- AppCompatActivity设置为dialog弹窗主题样式,并设置半透明背景
热门文章
- cd-rom门锁定什么意思_CD-ROM XA的完整格式是什么?
- Java ResourceBundle getLocale()方法与示例
- olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作
- avatar.php uid,phpcms函数库中获取会员头像方法get_memberavatar()有时无效问题
- 网络克隆软件_网文生成器,克隆的是骗钱“病毒”
- c++局部对象是什么_程序员每日一题-GCROOT对象
- observable_Java Observable notifyObservers()方法与示例
- c++ stl stack_C ++ STL中的stack :: push()函数
- mysql导入工具 行提交_使用命令行工具mysqlimport导入数据
- pythonpptx 楷体_python-pptx 实践 4:添加形状、文本