国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí)

GUID(Global unique identifier)全局唯一標(biāo)識(shí)符,它是由網(wǎng)卡上的標(biāo)識(shí)數(shù)字(每個(gè)網(wǎng)卡都有唯一的標(biāo)識(shí)號(hào))以及 CPU 時(shí)鐘的唯一數(shù)字生成的的一個(gè) 16 字節(jié)的二進(jìn)制值。

GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個(gè) x 是 0-9 或 a-f 范圍內(nèi)的一個(gè)十六進(jìn)制的數(shù)字。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即為有效的 GUID 值。

世界上的任何兩臺(tái)計(jì)算機(jī)都不會(huì)生成重復(fù)的 GUID 值。GUID 主要用于在擁有多個(gè)節(jié)點(diǎn)、多臺(tái)計(jì)算機(jī)的網(wǎng)絡(luò)或系統(tǒng)中,分配必須具有唯一性的標(biāo)識(shí)符。在 Windows 平臺(tái)上,GUID 應(yīng)用非常廣泛:注冊表、類及接口標(biāo)識(shí)、數(shù)據(jù)庫、甚至自動(dòng)生成的機(jī)器名、目錄名等。

在這次開發(fā) ASP.NET 應(yīng)用時(shí),我大量使用了類型為 GUID 的 ID 列作為各實(shí)體表的關(guān)鍵字(鍵)。由于其唯一、易產(chǎn)生的特性,給應(yīng)用程序處理帶來諸多好處。

1、在 SQL Server 中使用 GUID

如果在 SQL Server 的表定義中將列類型指定為 uniqueidentifier,則列的值就為 GUID 類型。

SQL Server 中的 NewID() 函數(shù)可以產(chǎn)生 GUID 唯一值,使用此函數(shù)的幾種方式如下:

1) 作為列默認(rèn)值

將 uniqueidentifier 的列的默認(rèn)值設(shè)為 NewID(),這樣當(dāng)新行插入表中時(shí),會(huì)自動(dòng)生成此列 GUID 值。

2)使用 T-SQL

在 T-SQL 中使用 NewID()函數(shù),如“INSERT INTO Table(ID,... ) VALUES(NewID(),...)”來生成此列的 GUID 值。

3)提前獲取 GUID 值

由于特殊功能需要,需要預(yù)先獲知新行的 ID 值,也可以使用如下 C# 代碼提前獲得 GUID 的值,再存儲(chǔ)到數(shù)據(jù)庫中:

 SqlCommand cmd = New SqlCommand();
 cmd.CommandText = "SELECT NewID()";
 string rowID = (string) cmd.ExecuteScalar();
 cmd.CommandText = "INSERT INTO Table(ID,...) VALUES(@ID,...)
 cmd.Parameters.Add("@ID",SqlDbType.UniqueIdentifier).Value = new Guid(rowID);
 cmd.ExecuteNoQuery();

uniqueidentifier 值不能進(jìn)行算術(shù)運(yùn)算,但可以進(jìn)行(意義不大的)比較操作和 NULL 檢查;它不能象 IDENTITY 列一樣,可以獲知每行的增加時(shí)間的先后順序,只能通過增加其它時(shí)間或時(shí)間戳列來完成此功能。

2、在 .NET 中使用 GUID

GUID 在 .NET 中使用非常廣泛,而且 .NET Framework 提供了專門 Guid 基礎(chǔ)結(jié)構(gòu)。

Guid 結(jié)構(gòu)的常用法包括:

1) Guid.NewGUID()

生成一個(gè)新的 GUID 唯一值

2) Guid.ToString()

將 GUID 值轉(zhuǎn)換成字符串,便于處理

3)構(gòu)造函數(shù) Guid(string)

由 string 生成 Guid 結(jié)構(gòu),其中string 可以為大寫,也可以為小寫,可以包含兩端的定界符“{}”或“()”,甚至可以省略中間的“-”,Guid 結(jié)構(gòu)的構(gòu)造函數(shù)有很多,其它構(gòu)造用法并不常用。

同時(shí),為了適用數(shù)據(jù)庫中使用 GUID 的需要,.NET Framework 也提供了 SqlGUID 結(jié)構(gòu),它和 Guid 結(jié)構(gòu)類似,只是兩者對(duì)排序(CompareTo)的處理方式不同,SqlGuid 計(jì)算值的最后 6 個(gè)字節(jié)。而 Guid 計(jì)算全部 16 個(gè)字節(jié),這種差異可能會(huì)給 SQL Server 中 uniqueidentifier 列的排序帶來一定影響,當(dāng)然這種排序意義也不大。

.NET Framework 中可以使用類 GuidConverter 提供將 Guid 結(jié)構(gòu)與各種其他表示形式相互轉(zhuǎn)換的類型轉(zhuǎn)換器。


3、GUID 的優(yōu)缺點(diǎn)

1) 優(yōu)點(diǎn)

  • 同 IDENTITY 列相比,uniqueidentifier 列可以通過 NewID() 函數(shù)提前得知新增加的行 ID,為應(yīng)用程序的后續(xù)處理提供了很大方便。

  • 便于數(shù)據(jù)庫移植,其它數(shù)據(jù)庫中并不一定具有 IDENTITY 列,而 Guid 列可以作為字符型列轉(zhuǎn)換到其它數(shù)據(jù)庫中,同時(shí)將應(yīng)用程序中產(chǎn)生的 GUID 值存入數(shù)據(jù)庫,它不會(huì)對(duì)原有數(shù)據(jù)帶來影響。

  • 便于數(shù)據(jù)庫初始化,如果應(yīng)用程序要加載一些初始數(shù)據(jù), IDENTITY 列的處理方式就比較麻煩,而 uniqueidentifier 列則無需任何處理,直接用 T-SQL 加載即可。

  • 便于對(duì)某些對(duì)象或常量進(jìn)行永久標(biāo)識(shí),如類的 ClassID,對(duì)象的實(shí)例標(biāo)識(shí),UDDI 中的聯(lián)系人、服務(wù)接口、tModel標(biāo)識(shí)定義等。

2) 缺點(diǎn)

  • GUID 值較長,不容易記憶和輸入,而且這個(gè)值是隨機(jī)、無順序的,所以使用時(shí)要注意場合,最好不要嘗試用它來作為你的電子郵件地址 J

  • GUID 的值有 16 個(gè)字節(jié),與其它那些諸如 4 字節(jié)的整數(shù)相比要相對(duì)大一些。這意味著如果在數(shù)據(jù)庫中使用 uniqueidentifier 鍵,可能會(huì)帶來兩方面的消極影響:存儲(chǔ)空間增大;索引時(shí)間較慢。


綜合來說, GUID 的優(yōu)點(diǎn)帶來的便利遠(yuǎn)超出其缺點(diǎn)帶來的影響,隨著諸如 WebService 等系統(tǒng)互聯(lián)與整合技術(shù)的不斷發(fā)展,其唯一標(biāo)識(shí)的特性使得其應(yīng)用越來越廣,在您的應(yīng)用程序中也應(yīng)考慮使用它了。

2004年3月23日 10:57 - (閱讀:12011;評(píng)論:33)

評(píng)論

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-23 11:39 開心就好
便于EAI:)

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-23 12:14 南002
第一句話,使用網(wǎng)絡(luò)標(biāo)示什么的,因?yàn)樯嫦颖┞睹孛芏籜X掉了。

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-23 12:25 progame
我一直納悶的是 如果沒有裝網(wǎng)卡 那么GUID如何生成?

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-23 13:07 JGTM‘2004 [MVP]
Windows 2000之后已經(jīng)不使用網(wǎng)卡地址作為生成GUID的參數(shù)了,現(xiàn)在用的是第四代算法,使用的是安全子系統(tǒng)的隨機(jī)數(shù)生成器(RNG),因此安全性沒有什么問題了。

@progame:

如果沒有網(wǎng)卡,系統(tǒng)會(huì)使用其它的一些具有隨機(jī)特征的數(shù)字作為種子來生成GUID。

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-23 13:23 moslem
UUIDs and GUIDs (DRAFT) 02/04/98

Node IDs when no IEEE 802 network card is available

If a system wants to generate UUIDs but has no IEE 802 compliant
network card or other source of IEEE 802 addresses, then this section
describes how to generate one.

The ideal solution is to obtain a 47 bit cryptographic quality random
number, and use it as the low 47 bits of the node ID, with the most
significant bit of the first octet of the node ID set to 1. This bit
is the unicast/multicast bit, which will never be set in IEEE 802
addresses obtained from network cards; hence, there can never be a
conflict between UUIDs generated by machines with and without network
cards.

If a system does not have a primitive to generate cryptographic
quality random numbers, then in most systems there are usually a
fairly large number of sources of randomness available from which one
can be generated. Such sources are system specific, but often
include:

- the percent of memory in use
- the size of main memory in bytes
- the amount of free main memory in bytes
- the size of the paging or swap file in bytes
- free bytes of paging or swap file
- the total size of user virtual address space in bytes
- the total available user address space bytes
- the size of boot disk drive in bytes
- the free disk space on boot drive in bytes
- the current time
- the amount of time since the system booted
- the individual sizes of files in various system directories
- the creation, last read, and modification times of files in various
system directories
- the utilization factors of various system resources (heap, etc.)
- current mouse cursor position
- current caret position
- current number of running processes, threads
- handles or IDs of the desktop window and the active window
- the value of stack pointer of the caller
- the process and thread ID of caller
- various processor architecture specific performance counters
(instructions executed, cache misses, TLB misses)

(Note that it precisely the above kinds of sources of randomness that
are used to seed cryptographic quality random number generators on
systems without special hardware for their construction.)

In addition, items such as the computer‘s name and the name of the
operating system, while not strictly speaking random, will help
differentiate the results from those obtained by other systems.

The exact algorithm to generate a node ID using these data is system
specific, because both the data available and the functions to obtain

them are often very system specific. However, assuming that one can
concatenate all the values from the randomness sources into a buffer,
and that a cryptographic hash function such as MD5 [3] is available,
then any 6 bytes of the MD5 hash of the buffer, with the multicast
bit (the high bit of the first byte) set will be an appropriately
random node ID.

Other hash functions, such as SHA-1 [4], can also be used. The only
requirement is that the result be suitably random _ in the sense that
the outputs from a set uniformly distributed inputs are themselves
uniformly distributed, and that a single bit change in the input can
be expected to cause half of the output bits to change.


# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-23 16:20 jiangsheng
比較郁悶的是Access里面使用GUID很麻煩

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-24 23:19 色盲
Hey,堂主,今晚不知不覺又逛到你這來了,再看看這篇文章,發(fā)現(xiàn)昨晚我發(fā)的FEEDBACK被DEL了,好納悶啊。。。我的FEEDBACK沒有非法博客堂的規(guī)章制度,更沒有違法,也沒有任何對(duì)你的攻擊啊。。。。只不過是我的觀點(diǎn)和你的不一致而已。
BLOG意義何在呢?

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-25 9:21 moslem
TO 色盲:

我希望多些有意義的反饋,觀點(diǎn)不一致是是可以的,但要說出你自己的理由,說出自己的觀點(diǎn),不能什么都不說,就“我強(qiáng)烈反對(duì)你的觀點(diǎn),或者根本不能稱為觀點(diǎn)”之類的話,這樣讓人懷疑你的動(dòng)機(jī)。

希望我們能繼續(xù)共同交流關(guān)于 GUID 的一些優(yōu)缺點(diǎn)。



# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-25 18:02 Forks
Guid.NewGuid()直接可以生成Guid,不需要通過sql server來生成吧,效率不高。

SqlCommand cmd = New SqlCommand();
cmd.CommandText = "SELECT NewID()";
string rowID = (string) cmd.ExecuteScalar();
cmd.CommandText = "INSERT INTO Table(ID,...) VALUES(@ID,...)
cmd.Parameters.Add("@ID",SqlDbType.UniqueIdentifier).Value = new Guid(rowID);
cmd.ExecuteNoQuery();


# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-27 14:06 色盲
;)


# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-3-30 12:04 關(guān)門放狗
好文章
我覺得唯一的缺點(diǎn)就是位數(shù)太長了并且無意義,每個(gè)項(xiàng)目,都為Row ID發(fā)愁........

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-4-7 13:28 小莫
我正在為ASP如何生成GUID煩著了,哪位大大有過這方面的經(jīng)驗(yàn)

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-4-14 0:16 greysnake
Guid在應(yīng)用中的用處大嗎? 這樣的一串隨機(jī)數(shù)字不好記憶,也不好應(yīng)用,不知道用處在什么地方。請指點(diǎn) 。

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-4-15 5:20 moslem
TO greysnake:

GUID 主要用在需要永久的,保持唯一的,固定長度的標(biāo)識(shí)上。

例如,想在網(wǎng)站上發(fā)布新聞,用 news.asp?id=GUID 就可以很好地保持唯一性,如果用整數(shù)的話,會(huì)越來越大,不便于管理,而且易被非法利用(如別人可以利用程序自動(dòng)里從你這里獲取數(shù)據(jù))

這次 MVP 會(huì)議的時(shí)候,MS 的自夸,他們就是大量利用 GUID 來保證了網(wǎng)站上不會(huì)有鏈接失效(Link break)。

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-4-16 23:19 greysnake
ok,thx
明白了。 為了保證應(yīng)用的唯一性的方法。

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-5-14 9:56 雷俊強(qiáng)
若把guid列設(shè)為主鍵,新增加的行會(huì)按guid列的大小插入到表中的相應(yīng)位置,而不是直接放在最后,當(dāng)表中的大量的行時(shí),是否影響insert性能(頁分裂)?

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-5-14 10:19 雷俊強(qiáng)
對(duì)這個(gè)問題,我以前都是用一個(gè)表保存一個(gè)int數(shù)據(jù),然后做一個(gè)存儲(chǔ)過程來每次加1,這樣需要先知道唯一值時(shí)通過這個(gè)存儲(chǔ)過程取得它,然后可以再做其他處理。

這樣int值都是從小到大生成的,且int處理要比string快的多。

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-5-17 15:41 Henry Wu
什么時(shí)候能共享出來學(xué)習(xí)就好呀

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2004-7-1 21:44 ray_linn
網(wǎng)卡也不保險(xiǎn),我這里已經(jīng)發(fā)生過幾次供應(yīng)商刷錯(cuò)MAC Addres的錯(cuò)誤了,導(dǎo)致有些網(wǎng)卡的MAC ADDRESS完全一樣。 :(

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2005-1-17 13:50 ccrx
GUID 無法進(jìn)行 Count() 等 SQL 計(jì)算,這個(gè)就不是很方便。

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2005-5-3 18:09 sa
SA

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2005-5-18 17:07 MA
dim GuidID as guid = guid.newguid()
請問為什么我這樣生成的GUIDID會(huì)有重復(fù)值?

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2005-12-17 18:37 水泓
GUID是很好的主鍵標(biāo)識(shí)的解決方案,可能有的程序員沒有遇見過系統(tǒng)移植,比如以前我做過一個(gè)項(xiàng)目,JAVA+SqlServer架構(gòu),因一些原因需將之移植到Linux下,得用JAVA+MySQL,而很要命,在SqlServer中用到了自動(dòng)編號(hào)類型的主鍵,移植中必須將數(shù)據(jù)導(dǎo)入MySQL,遇上很多的刺手問題,還好數(shù)據(jù)庫的數(shù)據(jù)還不是很多,用了程序?qū)?,?shù)據(jù)庫設(shè)計(jì)總的來說依據(jù)3范式,所以必須要程序相應(yīng)解決了數(shù)據(jù)的完整性,最后幸不辱使命。

整個(gè)移植工作完畢之后,考慮了好多在數(shù)據(jù)庫設(shè)計(jì)階段的思路,總結(jié)了一些經(jīng)驗(yàn)。
盡量運(yùn)用各種常用數(shù)據(jù)庫支持的通用的數(shù)據(jù)類型,盡量少用或不用自動(dòng)編號(hào)數(shù)據(jù)庫類型;
管理員代號(hào)+日期+時(shí)間+隨機(jī)數(shù)并不是很好的解決方案,因?yàn)橥瑯邮菗p失的索引消耗資源,且程序?qū)崿F(xiàn)反而不如GUID來得干脆;
不用自動(dòng)編號(hào)字段做主鍵標(biāo)識(shí)時(shí),盡量少用/不用存儲(chǔ)過程根據(jù)表中記錄的Max(XX)獲取當(dāng)前的最大Int,在你往返查詢-->插入數(shù)據(jù)過程中,時(shí)間好象很短,對(duì)系統(tǒng)來說已經(jīng)過了很長時(shí)間了,可能你獲取了當(dāng)前應(yīng)該是100,當(dāng)你插入數(shù)據(jù)時(shí),已經(jīng)又條佬不知什么時(shí)候占了100了,這就存在并發(fā)的問題;
利用GUID還是解決分布式系統(tǒng)的好方案,在多層分布系統(tǒng)中,多個(gè)服務(wù)器,多個(gè)數(shù)據(jù)庫,如用自動(dòng)編號(hào),則當(dāng)你需要匯總數(shù)據(jù)的時(shí)候,會(huì)發(fā)現(xiàn)麻煩來了,主鍵重復(fù),系統(tǒng)崩潰。

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-2-1 11:47 單凱
獲益匪淺,但仍不知如何使用

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-2-14 11:45 小灰
還是比較迷惑,如果GUID做了索引究竟能比自動(dòng)增長的效率低多少?還有在開發(fā)的時(shí)候要注意哪些問題,樓主沒有交代呀?

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-6-16 11:37 五根草
請教
STRING 轉(zhuǎn)換為GUID 的方法

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-6-21 16:18 YapEro
string strIn = "..........";
Guid guid = new Guid(strIn);

# 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí)(zz) 2006-7-15 9:16 stu_acer
轉(zhuǎn)載自:http://blog.joycode.com/moslem/archive/2004/03/23/16930.aspx GUID(Globaluniqueidentifier)全局唯一...

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-9-1 13:44 zcj
同1臺(tái)機(jī)器產(chǎn)生的guid會(huì)相同碼?

# 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-9-19 11:35 Scott
GUID(Global unique identifier)全局唯一標(biāo)識(shí)符,它是由網(wǎng)卡上的標(biāo)識(shí)數(shù)字(每個(gè)網(wǎng)卡都有唯一的標(biāo)識(shí)號(hào))以及 CPU 時(shí)鐘的唯一數(shù)字生成的的一個(gè) 16 字節(jié)的二進(jìn)制值。

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-11-13 23:51 過客
說一下自已的一點(diǎn)想法:
(1)對(duì)于程序員來說,可能系統(tǒng)移植是很少碰到的,因?yàn)殚_發(fā)系統(tǒng)時(shí)應(yīng)該事先都定好了相關(guān)開發(fā)環(huán)境及安裝環(huán)境,環(huán)境改變的情況應(yīng)該比較少
(2)引用:便于數(shù)據(jù)庫初始化,如果應(yīng)用程序要加載一些初始數(shù)據(jù), IDENTITY 列的處理方式就比較麻煩,而 uniqueidentifier 列則無需任何處理,直接用 T-SQL 加載即可
觀點(diǎn):不會(huì)麻煩,因?yàn)镾QL SERVER中有一個(gè)全局的參數(shù)@@IDENTITY 可以使用,另外水泓所說的數(shù)據(jù)并發(fā)問題,可以用事務(wù)來解決這個(gè)問題
(3)幾個(gè)問題:1、如果GUID做了索引究竟能比自動(dòng)增長的效率低多少?
2、如果是大型的系統(tǒng),如電信、煙草之類的,他們的數(shù)據(jù)庫中的唯一標(biāo)識(shí)字段是否是用GUID?

# re: ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-11-14 17:59 llafei
分布式系統(tǒng)中作為ID應(yīng)為一個(gè)很好的選擇
我覺得簡單的講應(yīng)為:如你有一個(gè)系統(tǒng),即可聯(lián)機(jī)服務(wù)器操作,也可脫機(jī)服務(wù)器工作站操作,并可隨時(shí)把脫機(jī)數(shù)據(jù)上傳到服務(wù)器,也可隨時(shí)把服務(wù)器的數(shù)據(jù)下載更新到工作站機(jī),那么在關(guān)系數(shù)據(jù)表中關(guān)聯(lián)ID就需要一個(gè)唯一的ID,不論是那個(gè)工作站產(chǎn)生的ID,都需唯一,以便相互關(guān)聯(lián),在數(shù)據(jù)上傳服務(wù)器的庫中也可以用這個(gè)ID作為唯一關(guān)聯(lián)ID使用,即使數(shù)據(jù)庫合并也不會(huì)有ID重復(fù)和或關(guān)聯(lián)丟失的出現(xiàn).............算了,我是菜鳥,我也講不明白了...只是這樣理解...................

# 回復(fù): ASP.NET開發(fā)經(jīng)驗(yàn)(3) --- 使用 GUID 值來作為數(shù)據(jù)庫行標(biāo)識(shí) 2006-11-29 14:17 Cassaba
可以看看我對(duì)幾種ID生成方式的總結(jié)
http://blog.csdn.net/cassaba/archive/2006/11/29/1419798.aspx
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【轉(zhuǎn)】關(guān)于使用GUID和Identity做主鍵的一些思考
數(shù)據(jù)庫主鍵設(shè)計(jì)之思考
如何在高并發(fā)分布式系統(tǒng)中生成全局唯一Id
Delphi生成GUID
【數(shù)據(jù)庫設(shè)計(jì)
使用“COMB(Combine)”類型
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服