有一个数据表目前只有小学一年级的数据,现在接到的需求是小学二年级也想写入到数据表但是id想重新从1.001排序,不想跟到一年级后边,请问这该怎么实现?虽然我以下逻辑可以实现小学初中高中的判断,但是怎么判断是小学2年级开始写表呢?
1开头的为小学,
2开头的为初中,
3开头的为高中
那你规则再改一下啊 前面是1 是小学 2是初中 3是高中 然后后面2 位数是年级 101就是1年级 102就是2年级106就是6年级 207就是初一 然后再加个年 101 2020 0001 后面是学生的编号
这样就可以区分 是那年的学生 我曾经就是这样弄的 按照年份 自然可以判断出他是哪个年级的 就第一批 需要这样处理
以后 学生就用一个ID 就可以了 不管升到那个年级 除非留级了 才需要修改
不过建议再加多个 一个唯一UUID 学号ID可以修改 UUID不修改 这样 以后查找数据会方便许多
ID必须是唯一的,不能重复!!!
这种可以写到数据库触发器里吧
如果ID设置为主键的话是不能重复的,二年级写表就不能实现了。
通常的做法有两个:
1、设置另一个主键字段,可以是自增int,也可以是uuid,然后设置ID字段可以不唯一,然后用其他的字段区分年级;
2、分表,用表名区分年级,同表内ID唯一。
方法2适用于统一分类数据量极大的情况,技术上实现比较复杂,建议方法1。
小学1年级:11001
小学2年级:12001
中学1年级:21001
中学2年级:22001