首页 / 知识
关于sql server:GUID作为主键-脱机OLTP
2023-04-13 23:37:00

GUIDs as Primary Keys - Offline OLTP我们正在设计通常是OLTP(想想:采购系统)的应用程序。 但是,这一点尤其需要某些用户脱机,因此他们需要能够将DB下载到他们的计算机上,在该计算机上工作,然后在他们进入LAN后再同步回去。 我想指出的是,我知道这之前已经做过,只是我没有使用这种特定模型的经验。 我想到的一个想法是使用GUID作为表键。 因此,例如,一个采购订单将没有数字(自动数字),而是一个GUID,以便每个脱机客户端都可以生成这些数字,并且当我重新连接到数据库时,我不会发生冲突。
由于某种原因,这是一个坏主意吗? 您是否有使用这类系统的经验? 您如何解决这个问题?
谢谢! 将Guid用作主键是可以接受的,并且出于与考虑它们相同的原因,这被认为是相当标准的做法。它们可能会被过度使用,从而使调试和管理工作变得有些繁琐,因此请尽可能使它们远离代码表和其他参考数据。 您必须关心的是人类可读的标识符。不能与他人交换Guid-如果您是Guid,可以想象通过电话确认您的订单号吗?因此,在离线情况下,您可能仍需要生成一些内容-例如发布者(工作站/用户)ID和一些序列号,因此订单号可能是123-5678-。 但是,这可能无法满足具有序号的业务要求。实际上,法规要求可能会产生影响-有些法规(可能是SOX)要求发票编号是连续的。在这种情况下,可能需要生成某种形式的编号,该编号在以后的系统同步时固定下来。您可能会发现具有OrderId(Guid),OrderNo(int),ProformaOrderNo(varchar)的表-可能会增加一些复杂性。 至少将Guid作为主键意味着,当同步最终发生时,您不必进行大量的级联更新-您只需更新人类可读的数字即可。 @SqlMenace
|
最新内容
相关内容
备份用命令linux系统?
备份用命令linux系统?,系统,信息,设备,数据,软件,认证,命令,文件,备份,目录,Linux查看数据库备份脚步的配置信息命令连接上相应的linux主机,进linux系统中管道命令?
linux系统中管道命令?,标准,系统,工作,命令,信息,通讯,管道,流向,连续,工具,Linux第二章-Linux常用命令1、linux常用命令有pwd命令、cd命令、llinux系统命令记不住?
linux系统命令记不住?,系统,工作,基础,地址,网络,服务,命令,第一,名称,目录,学LINUX基础命令总是记不住怎么办?1、按命令的单词意义来记忆是最linux云计算查看命令?
linux云计算查看命令?,系统,信息,地址,工作,命令,情况,标准,服务,软件,网络,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux系统刻盘命令?
linux系统刻盘命令?,系统,软件,设备,工具,盘中,电脑,数据,官网,信息,网络,请问如何把GRUB2做到光盘中?1、进入windows上网下载grub2 for dos,照linux系统还原的命令?
linux系统还原的命令?,系统,数据,工具,软件,地址,工作,情况,信息,命令,位置,如何使用fsck命令修复文件系统错误在单个分区上进行错误检查 在终linux系统命令都没了?
linux系统命令都没了?,系统,单位,软件,命令,分析,第一,权威,公司,工作,异常,我的Linux系统上没有tree命令,我该如何安装?1、get install tree;linux命令安装新系统?
linux命令安装新系统?,系统,软件,工作,管理,在线,电脑,信息,基础,发行,数据,Linux安装基本命令1、linux系统常用操作命令linux系统常用操作命linux打开计算器命令?
linux打开计算器命令?,密码,电脑,工作,设备,数字,系统,手机,指数,情况,服务,关于Linux的(操作过程中的Linux命令必须完整给出)对Linux操作系统linux系统的命令字?
linux系统的命令字?,地址,系统,工作,管理,信息,命令,目录,情况,发行,设备,请问linux操作系统的命令是什么1、linux命令是对Linux系统进行管理linux系统的命令格式?
linux系统的命令格式?,系统,管理,地址,工作,命令,信息,目录,情况,网络,操作,Linux常用系统管理命令1、linux常用命令有pwd命令、cd命令、ls命linux系统用户组命令?
linux系统用户组命令?,系统,管理,密码,代码,用户组,用户,命令,邮箱,电脑,名称,Linux命令之用户组管理在Linux中,用户组是一种将一组用户聚合在