2017-01-19 39 views
0

我試圖連接兩個數據庫中的數據,這兩個數據庫都由不同的UI應用程序自動創建。其中一個鍵的格式爲「D8FC23D7-97D6-42F5-A52F-1CE93087B3A4」。爲什麼數據庫有一個奇怪的字母數字鍵

這是否有任何理由呢?我還在GIS數據庫中看到了類似的鍵。我不知道這些應該是一些計算密鑰,也許是爲了檢測我正在嘗試做什麼,或者只是隨意使用其他一些意圖。

PS我正在使用SQL Server。從我可以收集的信息來看,這不是由SQL Server自動生成的。

+10

它被稱爲'GUID'。是的,這是可以自動生成的東西'SELECT NEWID()' – Siyual

+0

...這對主鍵來說是一個糟糕的選擇。 [好吧,至少作爲聚集索引。](http://stackoverflow.com/questions/11938044/what-are-the-best-practices-for-using-a-guid-as-a-primary-key-特別是rega) –

+0

有時它被稱爲唯一標識符。這些可以通過各種編程語言生成,所以不要跳到任何結論。 –

回答

2

這是一個GUID,也稱爲UUID,通用唯一標識符(例如,wikipediarfc4122)。 guid背後的想法是,應用程序可以生成全球唯一的標識符,而不需要中央單元進行任何編排(參見下面的rfc4122的動機)。

各種系統,數據庫和編程語言提供用於生成UUID的功能(例如,sql server中的SELECT NEWID());好處是,在UUID生成器中,應用程序可以以自給自足的方式生成全局標識的單元。

UUID可以用作數據庫密鑰,但在大多數情況下,您會發現更輕量級和更合適的密鑰。

其中一個主要的原因,使用UUID是沒有集中
權限需要對其進行管理(儘管格式使用
IEEE 802節點標識,有的則沒有)。因此,按需生成
可以完全自動化,並用於各種各樣的目的。如果需要
,則此處描述的UUID生成算法支持高達每機器1000萬次的高分配率,因此它們甚至可以用作事務ID。

與其他替代方案相比,UUID具有固定的大小(128位),這是相當小的
。這非常適合排序,排序和各種散列,存儲在數據庫中,簡單的
分配,以及一般編程的簡易性。

由於UUID是唯一且持久的,因此它們製作出色的統一 資源名稱。在沒有註冊過程的情況下生成新的UUID的獨特能力允許UUID成爲具有最低成本的URN之一。

+0

一號位的瑣事:GUID是微軟實現的UUID 。所以,GUID是UUID,但反過來並不一定是正確的。 –

+0

這是否意味着我應該能夠創建一個條目,或者算法是什麼使其具有通用性? – blindguy

+0

因爲我不能編輯:在回答我的評論,NEWID()上述似乎運作良好生成密鑰,從而真正回答我的問題,我認爲。 – blindguy

相關問題