mysql——Tree

    公司下面的一级部门、二级部门、多级部门,及部门下面用户的数据。将公司、部门、用户的数据如果以树的形式存储,便于查询。
    数据库表设置如下:
这里写图片描述

在organization表中为了快点查询某级表中所存在下级部门或者部门中的用户,增加hs字段,为快点定位该节点所在的位置信息。

  • 数据插入时,用使用触发器生成hs
  • 数据更新parent,所在的上级部门修改
    • mysq触发器+java代码实现+事务
    • mysql存储过程+事务实现

    修改数据的parent时,需要考虑更新hs,除自身的hs需要修改时,还得修改该节点下属节点的hs修改

mysq触发器+java代码实现+事务
    mysql的触发器不能对该表数据进行两次或者以上的修改操作,因为在修改parent后更新hs,只使用tigger无法实现,因此需要mysql中的tigger+业务层的代码实现
mysql存储过程+事务实现
    实现该需求时,需要对表进行两次操作,若其中一次失败,需保证数据有效一致,则需要事务进行回滚。

存储过程、函数的区别
存储过程
    无返回值,可参数输入,能带事务处理
函数
    有返回值,可参数输入,不能带事务处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值