id的重写规则

有一个数据表目前只有小学一年级的数据,现在接到的需求是小学二年级也想写入到数据表但是id想重新从1.001排序,不想跟到一年级后边,请问这该怎么实现?虽然我以下逻辑可以实现小学初中高中的判断,但是怎么判断是小学2年级开始写表呢?

1开头的为小学,

2开头的为初中,

3开头的为高中


FineReport 愤怒的老头 发布于 2020-10-28 14:51 (编辑于 2020-10-28 14:57)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
孤陌Lv6资深互助
发布于2020-10-28 15:01(编辑于 2020-10-28 15:08)

那你规则再改一下啊 前面是1 是小学  2是初中  3是高中 然后后面2 位数是年级 101就是1年级 102就是2年级106就是6年级 207就是初一  然后再加个年 101 2020 0001  后面是学生的编号 

这样就可以区分 是那年的学生  我曾经就是这样弄的 按照年份 自然可以判断出他是哪个年级的 就第一批 需要这样处理 

以后 学生就用一个ID 就可以了 不管升到那个年级 除非留级了 才需要修改 

不过建议再加多个 一个唯一UUID 学号ID可以修改   UUID不修改 这样 以后查找数据会方便许多 

最佳回答
0
沉默的反补Lv6中级互助
发布于2020-10-28 14:53(编辑于 2020-10-28 14:53)

ID必须是唯一的,不能重复!!!

  • 愤怒的老头 愤怒的老头(提问者) 我知道,抛过id重复的话来说,应该怎么做?
    2020-10-28 14:54 
  • 沉默的反补 沉默的反补 回复 愤怒的老头(提问者) 如果是以填报的方式来写入二年级的数据的话可以使用层次坐标轻松搞定
    2020-10-28 14:55 
  • 愤怒的老头 愤怒的老头(提问者) 回复 沉默的反补 层次坐标?是什么意思?有什么文档看看嘛?
    2020-10-28 14:56 
  • 沉默的反补 沉默的反补 回复 愤怒的老头(提问者) 文档地址-https://help.fanruan.com/finereport/doc-view-339.html?source=1 视频教程地址-https://bbs.fanruan.com/lesson-980.html
    2020-10-28 15:01 
最佳回答
0
shirokoLv6资深互助
发布于2020-10-28 14:53

这种可以写到数据库触发器里吧

  • 愤怒的老头 愤怒的老头(提问者) 触发器只能做id递增吧?
    2020-10-28 14:55 
  • shiroko shiroko 回复 愤怒的老头(提问者) 你重新弄逻辑吧,小学二年级就1.2.001这样吧
    2020-10-28 14:56 
  • 愤怒的老头 愤怒的老头(提问者) 回复 shiroko 但是怎么判断是小学2年级开始写表呢?
    2020-10-28 14:57 
最佳回答
0
firegunzxLv6高级互助
发布于2020-10-28 14:57

如果ID设置为主键的话是不能重复的,二年级写表就不能实现了。

通常的做法有两个:

1、设置另一个主键字段,可以是自增int,也可以是uuid,然后设置ID字段可以不唯一,然后用其他的字段区分年级;

2、分表,用表名区分年级,同表内ID唯一。

方法2适用于统一分类数据量极大的情况,技术上实现比较复杂,建议方法1。

最佳回答
0
ColdmanLv6高级互助
发布于2020-10-28 14:58

小学1年级:11001

小学2年级:12001

中学1年级:21001

中学2年级:22001

  • 6关注人数
  • 328浏览人数
  • 最后回答于:2020-10-28 15:08
    请选择关闭问题的原因
    确定 取消
    返回顶部