m***@qq.com
m***@qq.com
  • 发布:2021-07-06 16:22
  • 更新:2023-02-19 11:06
  • 阅读:1340

uni-cloud怎么设置自增id?

分类:uniCloud

自带的_id真的太长了,推广的时候参数带上_id真的好难看。想弄个自增id像mysql那样,从1开始自增~~请问怎么实现呢?

2021-07-06 16:22 负责人:无 分享
已邀请:

最佳回复

唐家三少

唐家三少 - 我要写代码

MySQL 等关系型数据库,支持自增id。
但在分布式环境下,尤其是在分库分表以后,单纯的自增主键会产生冲突,需要考虑如何生成唯一 ID。

这一点上,mongodb 预先考虑到并采取措施保证了分布式环境中生成的 id 的唯一性,也就没有支持自增id。

如果业务需求,可通过编程的方案,自己实现一个自增ID,比如mongodb默认以_id为主键,你可以再增加一个id,设置成整型,每次先查询最大值,然后+1设置为新值,从而变相实现自增ID。

海棠街大厉害

海棠街大厉害

自带_id确实从各方面讲都是一个更好的选择
如果非要一个int类型的自增id,可以新建一个uni-clientDB-action,在进行数据库操作时候运行一下添加的js脚本,自己创建一个自增的custom_id,考虑硬删除和id碰撞,用_id排序后取id最大的item的custom_id, 1
这样每次新增前需要做一次全表排序操作(可以先筛选优化),然后给待存入数据的custom_id重新赋值
如果有其他好的方式请艾特我

前端JASON

前端JASON - 接单uniapp项目&插件/联系front_jason/主页daxiong.site

没这个必要,_id 相当于哈希字符串,能更好的管理

  • m***@qq.com (作者)

    怎么就没必要了?_id长度20多位,自增id长度也就几位,某些业务场景比如分享到微信推广的时候,参数带自增id肯定更好

    2021-07-07 09:11

y***@foxmail.com

y***@foxmail.com

请问楼主这个有解决方案吗

我是龙王

我是龙王 - 介绍

我是用时间戳转62进制,这样下来就很短了,也设置成唯一就可以

要回复问题请先登录注册