`
weiqingfei
  • 浏览: 319668 次
  • 性别: Icon_minigender_1
  • 来自: 黑洞
社区版块
存档分类
最新评论

关于采番表设计

 
阅读更多

对于业务表,基本上都会给主键一个编号,尤其是主从表的时候,从表往往是根据主表的主键关联的。

在mysql里通常用一个自增字段做这个编号,但是自增字段有个问题就是不大好管理,尤其是数据库重启,或者迁移的时候。

如果一个表的自增字段毫无业务意义,即使在维护数据库的时候,对这个字段进行重拍,都不会影响业务的话,那么就没啥问题。

但像上面所说,还有其他表参照这个字段的话,那么这个字段最好是自己采番,而不是要依赖于数据库的动作。

 

1种方法是采番用UUID,这样即使是在分布式数据库时都可以用,但是同样有小概率重复,如果是单机的话,也没必要。

另外一种方法,就是设计一个采番数据库了,设计一个最简单的采番数据库。

drop table if exists numbering;
create table numbering (
    table_name varchar(20) primary key,
    id bigint(20) unsigned not null
) engine=innodb;

 以表为单位进行id管理,先初始化这个表

insert into numbering (table_name, id)values('users',0);

 

然后每次通过更新这个采番表,来取得新的id值

update numbering set id = last_insert_id(id + 1) where table_name = 'users';
select last_insert_id();

 

为了提高性能,要把这个id取得的处理放到一个单独的事务中去。

当然同样的,如果后续处理失败,再取得时,那就是新的id了,也就是id会不连续。

分享到:
评论

相关推荐

    海南番木瓜设施栽培关键生产技术研发教材.pptx

    【海南番木瓜设施栽培关键生产技术研发教材】是关于热带地区番木瓜高效种植的一份教材,由三亚市南繁科学技术研究院的杨小锋汇报。该教材主要关注于设施栽培技术的研发,旨在提升番木瓜的产量和稳定性,同时解决病...

    基于PHP+MSQL的大学生创业网站的设计与实现

    此系统设计上采用三层结构、Web Service 技术,使之在选用平台、采 用技术上具有先进性、前瞻性、扩充性,从而保证建成的系统具有良好的稳定性、可扩 充性。系统设计按标准化、规范化,分层设计,构件化实现。采用...

    番木瓜混浊果汁的工艺研究

    同时,包装设计应考虑消费者的便利性,如易开性、容量大小等。 最后,食品质量和安全是整个工艺研究的核心。遵循食品安全法规,进行严格的卫生控制,保证无农药残留、重金属超标等问题,是食品企业必须遵循的原则。...

    实验计划书.doc

    本文档详述了针对番木瓜果实橡皮化现象背后的细胞壁相关酶活动所进行的实验计划书,该计划旨在通过一系列精心设计的实验步骤,揭示番木瓜果实成熟过程中细胞壁变化的分子机制。 实验计划的总体设计分为三个阶段:...

    2017年度地测防治水工作计划.doc

    交通便利,距离盘县县城15公里,南昆铁路威红线鲁番站运距17公里,212省道从矿区东部经过,便于煤炭运输。 2. **煤矿基本信息** 盘县水塘镇黑皮凹子煤矿矿区面积为2.3953平方公里,开采深度从+1850m到+1500m,共由...

    java基础入门教程

    由 于 各 界 都 看 好 它 ,因 此 ,各 大 公 司 都 纷 纷 表 示 支 持 Java,Inte l、 Xerox公 司 声 言将 把 Java嵌 入 到 他 们 的 产 品 中 去 。 就 连 华尔 街 金 融 界 也 在 投入 资 金 人 力 用 Java开 发 电 ...

    现代交换原理与通信网技术 (卞佳丽

    现假定处理机字长为8位,男求设计只用一个时间表来控制这些时钟进行的 执行管理程序 1)从能适应全部时钟级程序的周期出发,就定出该机采用的时钟中断周期。 (2)设计出上述程序的全部启动控制表格。 (1)根所要执行的...

Global site tag (gtag.js) - Google Analytics