一般最常见的主键策略都是自增

但是为了应对分布式集群环境。数据库自然不能选择自增,否则并发大的时候会出现主键冲突。

一般oracle下选择了sequence的方式,mysql有的会自己设计sequence,有的会用uuid策略。这里对于对外展示的数据表来说,sequence可能不是一个好主意,不管你如何加密,最后都会泄露相关数据信息。所以有些电商互联网公司选择了uuid这个策略。在oracle数据库和5.0版本的mysql应该都支持。

那么我们先看看什么是UUID?简单的说,UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。在UUID的算法中,可能会用到诸如网卡MAC地址,IP,主机名,进程ID等信息以保证其独立性。

如果你的MySQL版本不太老的话,键入 SELECT UUID(); 输出的就是UUID,如下:

mysql> select uuid();
+--------------------------------------+
| uuid()                               |
+--------------------------------------+
| 54b4c01f-dce0-102a-a4e0-462c07a00c5e |
+--------------------------------------+

现在大家应该对UUID有一个比较直观的认识了,我们来看看UUID的优缺点分别是什么。

优点:

能够保证独立性,程序可以在不同的数据库间迁移,效果不受影响。
保证生成的ID不仅是表独立的,而且是库独立的,这点在你想切分数据库的时候尤为重要。

缺点:

比较占地方,和INT类型相比,存储一个UUID要花费更多的空间。
使用UUID后,URL显得冗长,不够友好。

下面针对上述UUID的缺点说说我的看法,比较占地方这个缺点我不是很在乎,现在最不值钱的就是硬盘了,略过此条缺点无妨,但需要注意的一点数据在索引的时候效率会随着体积的增加而降低。至于说使用UUID后,URL显得不友好,我觉得这多少是你的INT情结造成的惯性思维,其实,和INT类型相比,UUID才是最自然的主键选择,注意,我这里用的是自然这个形容词,仔细体会一下你能理解我的意思。另外,很多时候,URL本身就不需要友好,比如,一个电子商务网站,按照INT友好的URL说法,她的订单URL大概是下面这个形式的:/order.action/id/123,我要说明的是,这样是很友好,但是有些太友好了,友好的甚至不安全,比如说,我早晨下一个订单,发现URL是/order.php/id/1000,晚上再下一个订单发现URL是/order.php/id/2000,那么我就可以估计出此网站一天的订单数大致是1000左右,甚至能大体估计出它的销售额,而这些数据往往都是重要的商业秘密。使用UUID就没有这个顾虑。

同理oracle获取uuid的方法如下:

select sys_guid() from dual

做电商网站的主键策略相关推荐

  1. 什么服务器适合做电商网站

    什么服务器适合做电商网站 一.建网站需要服务器吗? 当然需要.网站是需要空间才能放在网上,当别人访问你的网站是,就是访问你网站所在的地址!这时候所有的数据都是要从服务器上调用的!当然,你可以选择把网站 ...

  2. 做电商网站php开发的流程,如何开发电商平台-电商开发第一步

    快速开发电商平台,创建一个企业电商网站,同时获得盈利的巨额收益要怎么做呢?但是你如何创建电子商务网站呢?易龙天电商网站开发工程师及七星迪曼整合营销专家为您解答,通过9个步骤创建企业级电子商务网站. 构 ...

  3. 在做电商网站之前先理清自己建站目的是什么

    电商在我国兴起以来,其市场规模和服务企业的数量都在迅速增长.电商活动中的网上采购和网上销售逐渐成为企业拓宽市场渠道.节约经营成本的重要途径.因此,它们也是衡量企业开展电子商务活动水平的有效指标.那么, ...

  4. 做电商网站服务器在哪里,电商网站服务器如何选择

    网络上的电商人数越来越多,那么现在我们做电商还有的做嘛! 其实,还是有机会的,这里面有两个关键点,一是所提供的产品及服务.另一个是别人访问我们网站时的感觉,也就相关到电子商务网站网站服务器. 使用电子 ...

  5. 电商网站采用什么运营策略和推广方法

    现在越来越多人投身到电子商务行业之中,很多人对于电子商务认知还是处于皮毛阶段,那应该怎么样对待这类问题?这是很多电子商务人才和企业比较关注,李金国在电子商务行业虽说还不是很久,至少在电子商务现阶段整体 ...

  6. 做电商网站如何选购云服务器?

    电商网站选择云服务器的方法: 1.根据客户较多的地域来选择服务器的地域,比如国内较多,那就选国内服务器. 2.选择双线和多线,有利于客户的增加和业务的拓展. 3.服务器的基础性能要好,必须要做到安全稳 ...

  7. 记录一下手把手教您做电商网站

    http://www.imooc.com/learn/100 转载于:https://www.cnblogs.com/TF12138/p/4091373.html

  8. 增长黑盒:零代码基础做智能电商网站,不要重复发明轮子

    增长黑盒:零代码基础做智能电商网站 Step0,不破不立,走上增长黑客之路   很多卖货的人最大的问题就是整个团队没有一个懂代码的,更不懂电商网站制作.此时贸然出去外包一个电商网站,问题可能会越来越多 ...

  9. 电商网站推广怎么做?如何提高商城网站知名度?

    由于电子商务对于线下传统行业的冲击,促使许多行业的开始搭建电商网站,搭建电商网站并不难,但是在电商网站搭建完成进行上线推广的第一步却是商城网站运营的重中之重,那么,企业该怎么做电商网站的推广工作呢? ...

最新文章

  1. 两边双虚线是什么意思_【交通】这些新标识啥意思?交警教你怎么走
  2. SoftReference
  3. JavaScriptjQuery.stopPropogation()
  4. jsp里面声明了utf-8格式,也写了字符编码过滤器,数据库编码也是utf-8,就连java.......
  5. STM32G071RB CubeMX ADC TIM DMA
  6. AES前后端加密解密
  7. ServiceStack.Redis 请求次数6000次异常
  8. 使用VMware VSphere WebService SDK进行开发 (三)——获取主机(HostSystem)的基本信息
  9. CCF201612-2 工资计算(100分)
  10. 4+64GB版的4G手机定价1699?网友:多了个1吧...
  11. linux5.5 里dns,linux red hat 5.5 dns 问题求解
  12. 服务器系统事件报错4103,IIS信息服务器排错指导
  13. 我的成长笔记20210324(进度把控)
  14. HDU2187 老人是真饿了【贪心】
  15. 百度迁徙爬虫工具:Baidu_migration_crawler
  16. FPGA源同步时钟输出
  17. SuperMemo 15.1
  18. python获取字典第一个元素,从字典中获取第一个元素
  19. RNA提取和建库流程对mRNA-Seq的影响
  20. 淘宝商城,亚洲最大网上购物网站

热门文章

  1. tinymce编辑器之placeholder插件的实现
  2. 小程序购物城项目实战(下篇)
  3. Python文件处理和异常处理基础知识
  4. 如何简单理解贝叶斯决策理论(Bayes Decision Theory)
  5. 20实际最牛逼的10大算法
  6. 使用阿里云dns+oss+cdn+ssl发布静态网站
  7. 1.7.1 容器类数据-列表
  8. ajax的get/post请求及其封装,以及ajaxHTTP状态码是啥子意思
  9. 数据库设计的六个阶段详解
  10. Pytorch实战 | 第P1周:实现mnist手写数字识别