国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用GUID作為數據表主鍵的好處

2024-07-21 02:05:59
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!
使用guid作為數據表主鍵的好處
 

數據表主健通常采用以下三種方式:

 

1.         自動遞增值。

2.         唯一名稱。這個是使用自己定義的算法來生成一個唯一序列號。

3.         guid(全局唯一標識符)。

 
guid與自動遞增值及唯一名稱比較guid
在客戶端生成,由guid的特性決定,通過guid生成的值可能出現重復的機會幾乎等于零,因此保證在插入表的時候主鍵值唯一。

可以方便處理分布式數據的提交,比如:分店數據向總店提交――直接將該部分數據插入即可。

支持離線數據處理。對本地數據包進行新增記錄時即可將該數據表的關鍵字段值賦值,其處理方法是與在線新增時是一致的。
自動遞增值
       在數據庫服務器端生成,由于該值是由數據庫系統內部處理的,亦保證其唯一性,但由于其是在數據庫服務器端生成,因此必須將該值返回客戶端,客戶端通過該值過行其它操作。比如一張單據(主從表)是使用自動遞增值,當插入單據抬頭后,必須將單據抬頭的關鍵字段值返回,再插入單據明細(單據明細是通過單據抬頭關鍵字段進行關聯的)。

不能很好處理分布式數據的提交,比如:分店數據向總店提交――提交數據時必須重新生成該數據表的關鍵字段值,以保證該字段值唯一。

要支持離線數據處理需要進行額外的處理,對本地數據包進行保存記錄(保存到本地)時需要插入一個假設唯一值,在提交離線數據回數據服務器時再重新生成真正的唯一值,并重新進行相關的處理。
唯一名稱
       在客戶端生成或在服務端生成,相對于自動遞增值不同的地方就是自己維護生成唯一值的算法及所保存的臨時值,容易造成出錯或其它問題。如果是在客戶端生成唯一值的話,還必須保證所生成的值是唯一的。

不能很好處理分布式數據的提交,比如:分店數據向總店提交――提交數據時必須重新生成(或預先處理)該數據表的關鍵字段值,以保證該字段值唯一

要支持離線數據處理需要進行額外的處理,對本地數據包進行保存記錄(保存到本地)時需要插入一個假設唯一值,在提交離線數據回數據服務器時再重新生成真正的唯一值,并重新進行相關的處理。

 
實例說明
下面以一個新增單據保存比較guid與自動遞增值/唯一名稱的差別

動作

guid

自動遞增值/唯一名稱

單據抬頭

 

 

新增

單據抬頭關鍵字段值:獲取并填寫

單據抬頭關鍵字段值:無

保存

直接保存

首先獲取并填寫關鍵字段值,然后再進行保存

返回

直接返回

返回時必須將關鍵字段值返回

單據明細

 

 

新增

關聯單據抬頭字段值:直接填寫

單據明細關鍵字段值:獲取并填寫

關聯單據抬頭字段值:無

單據明細關鍵字段值:無

 

保存

直接保存

獲取單據抬頭關鍵字段值并填寫到單據明細的關聯單據抬頭字段中;

然后獲取并填寫單據明細關鍵字段值;

再進行保存

 

 

綜合以上所述,用guid作為數據表的關鍵字段值是可以減輕關鍵字段相關的操作的,并且是最直接實用的方法。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 水富县| 莱西市| 廊坊市| 甘泉县| 谢通门县| 依安县| 澄江县| 汉源县| 上饶市| 昭觉县| 德钦县| 米林县| 江永县| 黄浦区| 桦甸市| 鄂尔多斯市| 铁力市| 维西| 孙吴县| 大兴区| 临海市| 高雄县| 阳信县| 宾川县| 长白| 利川市| 公安县| 上栗县| 湖州市| 南宫市| 杂多县| 哈巴河县| 湘西| 梓潼县| 建昌县| 商南县| 张家界市| 皮山县| 泰安市| 扶绥县| 喀什市|