细分主键

简介:     主键本身是很简单的,但是围绕他产生的故事就不是那么简单了。   1、 管理 这个是最重要的,没有规矩不成方圆,主键要如何管理一定要实现确定好了,甚至有必要为此写一个规范。比如是全公司采用相同的方式处理主键,还是根据项目、产品来各自管理?还是由项目组成员自行决定?这些都是需要实现说清楚的。

 

 

  主键本身是很简单的,但是围绕他产生的故事就不是那么简单了。

 

1、 管理

这个是最重要的,没有规矩不成方圆,主键要如何管理一定要实现确定好了,甚至有必要为此写一个规范。比如是全公司采用相同的方式处理主键,还是根据项目、产品来各自管理?还是由项目组成员自行决定?这些都是需要实现说清楚的。

 

 

2、 定义

不是说“主键”这个词的定义,而是主键用什么,比如用GUID还是用int,还是年月日时分秒+流水?

 

3、 生成

主键用什么确定好了之后就是如何生成了。比如GUID,是在程序里生成,还是由数据库的字段默认值来生成?采用无序的GUID还有有序的GUID?再比如int,是采用MSSQL 的自增,还是自己管理。如果自己管理的话,那么是写一个存储过程还是在代码里面写个函数(类)?

 

4、 安全

1,2,3,4这种主键是否够安全?是不是因为不安全就不能用了?一定要改成GUID才行?那么改成GUID了,是否还需要进行安全判断?什么情况下可以用int,什么时候不能用(因为安全原因)?

 

5、 效率

主键要不要设置索引?聚集的还是非聚集的,还是不用索引?int的和GUID的效率到底差了多少?

 

6、 移植

要不要考虑数据库的移植,以后会不会更换数据库?换数据库了会不会崩溃?

 

7、 数据合并

几个分公司的数据需要合并到一起,主键是否会冲突(重复)?

 

 

说这些的目的就是想让大家讨论的时候更明确一些,虽然我们都在讨论主键,但是这个范围也是很大的。

 

欢迎大家继续补充。

 

 

 

相关文章
|
3月前
|
存储 关系型数据库 MySQL
提高查询性能的秘密:深入剖析聚集、辅助、覆盖和联合索引
提高查询性能的秘密:深入剖析聚集、辅助、覆盖和联合索引
|
存储 索引
维度表和事实表的区别
转载:转载:https://blog.csdn.net/qq_56870570/article/details/118938411
3420 0
|
9月前
|
存储
分区表和分桶表(高频重点)
分区表和分桶表(高频重点)
126 0
|
7月前
|
负载均衡 监控 定位技术
分库表数据倾斜的处理让我联想到了 AKF 模型
这里的特殊性可以是表中字段的某一个属性,比如订单编号、创建时间等等。这就需要我们根据实际情况,既要拆分的均匀又要拆分之后能满足未来几年的发展,同时还要满足现有业务的支持。
45 0
|
11月前
|
存储 JavaScript Java
亿级别大表拆分 —— 记一次分表工作的心路历程
亿级别大表拆分 —— 记一次分表工作的心路历程
|
SQL 算法 关系型数据库
(四)mybatisPlus中表的三种主键和列的两种映关系,使用“雪花算法“提供分布式主键使用方案
😄看本博客之前,建议先看 1️⃣Mybatis-plus(MP)中CRUD操作保姆级笔记 2️⃣mybatisPlus实现ActiveRecord(AR)操作笔记 3️⃣mybatisPlus自定义Sql语句 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
221 0
(四)mybatisPlus中表的三种主键和列的两种映关系,使用“雪花算法“提供分布式主键使用方案
基于Saas主键表生成主键id
首先需要对当前的id进行拦截操作,也即使用aop的切面Aspect对切点进行拦截,在进行新增的时候进行拦截: 也就是说在进行主键的生成时,我们拦截好需要生成的主键,此时就可以对其进行新增操作了,而首要的就是拿到它的primaryKey。由于进行新增操作,通常分为两种情况: 通过字节码拿到声明的方法getId,如果此时存在id,则说明此时的操作是更新操作,因此直接返回。如果当前通过字节码拿到的声明方法getTenant,通过租户方法拿到租户id。拿到租户id后,就可以进行主键id获取了。
137 0
基于Saas主键表生成主键id
|
算法 数据库
|
SQL 存储 算法
揪出那个无主键的表
在 MySQL 中,建表时一般都会要求有主键。若要求不规范难免会出现几张无主键的表,本篇文章让我们一起揪出那个无主键的表。
145 0
|
存储 运维 搜索推荐
如何在千亿行规模的表中快速检索数据
小数据量的数据可以用 MySQL 存储和查询,但是数据量变多后,比如超过 2000万,甚至超过200亿后数据该选择哪个系统才能实现存储和查询两不误?这篇文章会介绍如何存储千亿行数据,以及如何在其实进行查询,而且这些都是在一个系统里面就能做到。
2411 0
如何在千亿行规模的表中快速检索数据