Mysql数据库的表的排序字段如何设计?

方式一:使用数据库的count进行计数

当向表中插入一条新数据时,数据的排序字段可以通过这种方式进行确定。每当插入数据,就先对数据库进行查询,统计查到的数据条数,在此基础上增加,这样每插入一条数据,该数据的排序字段就可以确定了。

缺点:当插入的数据涉及到删除数据的业务时,就容易出现问题。每当删除一条数据,数据的总数就会减少,就可能出现再插入数据时,新数据排序字段不如老数据的大。

例:例如现有两条数据,再插入一条数据a,则a的排序字段应该是3,当删除排序字段为1和2的数据时,再加入一条数据b,新的数据b的排序字段就会是2,这就会出现问题。


方式二:将排序字段与主键id进行逻辑绑定

将主键生成策略设计成自增的形式,每当插入一条数据时,将该数据的排序字段与主键id设为一致。这样就不会出现方式一的删除业务引起的问题。


方式三:使用redis维护排序字段

使用redis缓存,当建立表后,插入第一条数据时,就将redis中增加一个数据,用来保存初始排序字段值。之后,每当插入一条新数据时,就取出redis中存入的值,进行增加,当作该条数据的排序字段,将更改后的值放入redis中。删除操作,则不对redis进行操作。该方法也能避免方法一的问题。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值