首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >细分主键

细分主键

作者头像
用户1174620
发布2018-02-26 16:57:38
6300
发布2018-02-26 16:57:38
举报

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

1、 管理

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

2、 定义

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

3、 生成

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

4、 安全

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

5、 效率

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

6、 移植

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

7、 数据合并

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

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

欢迎大家继续补充。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-04-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档