热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用GUID作为数据表主键的好处

使用GUID作为数据表主键好处数据表主健通常采用以下3种方式:1.自动递增值2.唯名称这个是使用自己定义算法来生成个唯序列号3.GUID(全局唯标识符)GUID和自动递增值及唯名称比较GUID

使用GUID作为数据表主键好处
数据表主健通常采用以下 3种方式:
1. 自动递增值
2. 唯名称这个是使用自己定义算法来生成个唯序列号
3. GUID(全局唯标识符)
GUID和自动递增值及唯名称比较GUID在客户端生成由GUID特性决定通过GUID生成值可能出现重复机会几乎
等于零因此保证在插入表时候主键值唯
可以方便处理分布式数据提交比如:分店数据向总店提交――直接将该部分数据插入即可
支持离线数据处理对本地数据包进行新增记录时即可将该数据表关键字段值赋值其处理思路方法是和在线新增
时是致
自动递增值 在数据库服务器端生成由于该值是由数据库系统内部处理亦保证其唯性但由于其是在数据库服务器
端生成因此必须将该值返回客户端客户端通过该值过行其它操作比如张单据(主从表)是使用自动递增值当插入单
据抬头后必须将单据抬头关键字段值返回再插入单据明细(单据明细是通过单据抬头关键字段进行关联)
不能很好处理分布式数据提交比如:分店数据向总店提交――提交数据时必须重新生成该数据表关键字段值以保证
该字段值唯
要支持离线数据处理需要进行额外处理对本地数据包进行保存记录(保存到本地)时需要插入个假设唯值在提交
离线数据回数据服务器时再重新生成真正唯值并重新进行相关处理
唯名称 在客户端生成或在服务端生成相对于自动递增值区别地方就是自己维护生成唯值算法及所保存临时值容
易造成出错或其它问题如果是在客户端生成唯值话还必须保证所生成值是唯
不能很好处理分布式数据提交比如:分店数据向总店提交――提交数据时必须重新生成(或预先处理)该数据表关键
字段值以保证该字段值唯
要支持离线数据处理需要进行额外处理对本地数据包进行保存记录(保存到本地)时需要插入个假设唯值在提交离
线数据回数据服务器时再重新生成真正唯值并重新进行相关处理
例子介绍说明下面以个新增单据保存比较GUID和自动递增值/唯名称差别
动作
GUID
自动递增值/唯名称
单据抬头
新增
单据抬头关键字段值:获取并填写
单据抬头关键字段值:无
保存
直接保存
首先获取并填写关键字段值然后再进行保存
返回
直接返回
返回时必须将关键字段值返回
单据明细
新增
关联单据抬头字段值:直接填写
单据明细关键字段值:获取并填写
关联单据抬头字段值:无
单据明细关键字段值:无
保存
直接保存
获取单据抬头关键字段值并填写到单据明细关联单据抬头字段中;
然后获取并填写单据明细关键字段值;
再进行保存
综合以上所述用GUID作为数据表关键字段值是可以减轻关键字段相关操作并且是最直接实用思路方法


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 探讨架构师在项目中应如何平衡对产品的关注和对团队成员的关注,以实现最佳的开发成果。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 深入理解一致性哈希算法及其应用
    本文详细介绍了分布式系统中的一致性哈希算法,探讨其原理、优势及应用场景,帮助读者全面掌握这一关键技术。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
author-avatar
多米音乐_35562359
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有