社区
Oracle
帖子详情
关于主键的选择
heyixiang
2006-04-16 11:58:30
要保留记录的历史属性,所以表中同一个ID会有多条记录,每条记录插进来的时间都不同,现在是用ID+TIME做联合主键。
还有一种方法就是再加一个SEQ字段,用ID+SEQ做联合主键,第一条记录的SEQ为1,以后每插一条记录对应的SEQ就加1,TIME依然有个字段记录下来,只是不作为主键,不知道这两种方法那种好。
想听听各位高人在平时数据库涉及的经验。
...全文
181
7
打赏
收藏
关于主键的选择
要保留记录的历史属性,所以表中同一个ID会有多条记录,每条记录插进来的时间都不同,现在是用ID+TIME做联合主键。 还有一种方法就是再加一个SEQ字段,用ID+SEQ做联合主键,第一条记录的SEQ为1,以后每插一条记录对应的SEQ就加1,TIME依然有个字段记录下来,只是不作为主键,不知道这两种方法那种好。 想听听各位高人在平时数据库涉及的经验。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoxiao1984
2006-04-19
打赏
举报
回复
呵呵,感觉上第二种好
heyixiang
2006-04-19
打赏
举报
回复
没有其他人发表一下建议吗?
zlz_212
2006-04-19
打赏
举报
回复
第二种:可以给给这俩列加一个Unique
icedut
2006-04-17
打赏
举报
回复
我也选第二种
我不喜欢用time做主键
如果索引列的空间用得太多,应该会影响效率的
time类型查询起来,我认为没有number的方便
dp_555
2006-04-17
打赏
举报
回复
友情接分。。。
heyixiang
2006-04-17
打赏
举报
回复
我也是选第二种,目前系统采用的是第一种,所以我想改过来,但是要改的话必须说服其它的同事,改过来到底有什么好处?
目前第一种方法在使用中并不存在任何问题,因为目前系统中还没有涉及到历史信息的相关查询,改过来的话需要花一定的工作量,谁都不愿意做些麻烦的事情,只是我觉得如果现在改好后可以方便以后的开发,不至于1、2年后才发现以前的模型不支持新的需求。
大家帮忙顶顶,谢谢了。
zlz_212
2006-04-17
打赏
举报
回复
帮顶吧
我会选择第二种
关于数据库
主键
选择
关于数据库
主键
选择
UUID做
主键
int做
主键
UUID做
主键
优点: 1.保证数据在表和库都是独立的,有利于后续的分库 2.合并表的时候
主键
不会重复 3.有大量数据的时候
主键
不会像int那样越界 4.有利于处理分布式存储的数据表 缺点: 1.字符串型占用空间(存储和索引都占用比较大的空间) 2.插入和查询比int
主键
差 int做
主键
优点: 1.存储空间占用少 2.查询速度比较快 3.插入和更...
mysql中如何
选择
主键
1.不要
选择
业务字段作为
主键
2.在不复杂的系统中可以
选择
自增字段作为
主键
3.如果业务系统比较复杂,可以
选择
手动赋值字段作为
主键
.
mysql
选择
主键
的原则_如何
选择
数据库的
主键
我们现在在思考一下,应该采用什么来作表的
主键
比较合理,申明一下,
主键
的设计没有一个定论,各人有各人的方法,哪怕同一个,在不同的项目中,也会采用不同的
主键
设计原则。第一:编号作
主键
此方法就是采用实际业务中的唯一字段的“编号”作为
主键
设计,这在小型的项目中是推荐这样做的,因为这可以使项目比较简单化,但在使用中却可能带来一些麻烦,比如要进行“编号修改”时,可能要涉及到很多相关联的其他表,就象黎叔说的“后...
数据库
主键
选择
策略
我们在建立数据库的时候,需要为每张表指定一个
主键
,所谓
主键
就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个
主键
,但可以有多个候选索引。因为
主键
可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。当然,其它字段可以辅助我们在执行这些操作时消除共享冲突,不过就不在这里讨论了。
主键
除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。所以数据库在设计
MySQL
主键
的
选择
建议
MySQL
主键
的
选择
建议
Oracle
17,136
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章