社区
MySQL
帖子详情
数据库设计中,是不是尽量不要用自增类型做主键啊?
I_LOVE_YS
2015-07-29 01:34:29
数据库设计中,是不是尽量不要用自增类型做主键啊?
如果A表用自增(id)作为主键,B表关联A表表时,
是通过A表的Id作为关联的,假如我不小心把A表的
记录删除了,重新追加记录,这是Id变了,还要更
新B表,那多麻烦啊!!
对不对?
...全文
1200
4
打赏
收藏
数据库设计中,是不是尽量不要用自增类型做主键啊?
数据库设计中,是不是尽量不要用自增类型做主键啊? 如果A表用自增(id)作为主键,B表关联A表表时, 是通过A表的Id作为关联的,假如我不小心把A表的 记录删除了,重新追加记录,这是Id变了,还要更 新B表,那多麻烦啊!! 对不对?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhu19774279
2015-07-31
打赏
举报
回复
引用 3 楼 ACMAIN_CHM 的回复:
设计原则是,如果表中的字段已经有可以充当主键的字段或者字段组,则不要再使用自增。
这一点似乎争议比较大,有支持无意义字段做主键的,也有支持用业务字段中的唯一字段做主机的
ACMAIN_CHM
2015-07-31
打赏
举报
回复
设计原则是,如果表中的字段已经有可以充当主键的字段或者字段组,则不要再使用自增。
rucypli
2015-07-30
打赏
举报
回复
一般不删数据,加个标志位
道玄希言
2015-07-29
打赏
举报
回复
这个问题, 见仁见智吧 既然你都已经用了自增做主键, 那作为外键关联的, 为啥不用关联的自增键? 既然ID能做外键使用, 那ID就应该唯一吧, 如果ID唯一了, 那也可以直接做主键吧。 再说,既然是建立关联表,你子表在创建外键索引的时候,指定好相应操作,就OK了。 MySQL支持外键的存储引擎只有InnoDB MYSQL在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。 在创建索引的时候,可以指定在删除、更新父表时,对子表进行的相应操作, 包括RESTRICT、NO ACTION、SET NULL和CASCADE。 RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新; CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录; SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被SET NULL。
数据库
设计
与优化.pdf
1.3.3
主键
的
设计
主键
是必要的,SQL SERVER 的
主键
同时是一个唯一索引,而且在实际应用
中
,我们往往选择最小的键组合作为
主键
, 第 2 页 共 19 页 所以
主键
往往适合作为表的聚集索引。聚集索引对查询的影响是比较...
MySQL经典面试题29道
1、为什么要
尽量
设定一个
主键
?...总之,在数据量大一些的情况下,用
自增
主键
性能会好一些。 3、字段为什么要求定义为not null? null值会占用更多的字节,且会在程序
中
造成很多与预期不符的情况。
python生成并处理uuid的实现方式
数据库
一般都有自己的办法生成UUID,但虽然可以用,但这玩意考虑到可读性和有点坑的长度还是
尽量
不要
用这玩意
做
主键
···咳,有点跑题··· 下面就简单说明一下python是如何生成UUID的: python有一个模块叫
做
...
Leaf——美团点评分布式ID生成系统
在复杂分布式系统
中
,往往需要对大量的数据和消息进行唯一标识。...趋势递增:在MySQLInnoDB引擎
中
使用的是聚集索引,由于多数RDBMS使用B-tree的数据结构来存储索引数据,在
主键
的选择上面我们应该
尽量
使用有序的主
数据库
用
自增
做
主键
好还是用自定义的
主键
好?
昨天在与别人的交流
中
我得知一个劝告:“
设计
数据库
,你最好将
自增
id作为
主键
,而不是别的”。我想,为什么呢?为什么非得用一个与业务无关的
自增
ID作为
主键
呢?他还没有我的业务编号作为
主键
查找方便呢。于是,我带...
MySQL
56,677
社区成员
56,708
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章