2009-10-14 49 views
2

我想創建一個數據庫,其中每個表的PK將GUID和這將是整個數據庫唯一,SQL Server如何維護GUID跨表在同一數據庫

例子:我的數據庫名字爲「LOCATION」 。我有3個表格,分別是'CITY','STATE'和'COUNTRY'。

我希望所有3個表具有與GUID相同的PK字段,並且該值在數據庫中是唯一的。

如何在SQL Server中做到這一點,任何想法?我之前從未使用過SQL Server,因此如果簡要解釋它會很有幫助。

回答

4
create table CITY (
    ID uniqueidentifier not null primary key default newid(), 
    . 
    . 
    . 
) 

重複其他表。

3

你是什麼意思? 只需創建表格,爲每個表格添加一個Id字段,將Id字段的數據類型設置爲'uniqueidentifier',即可。 接下來,在這些列上添加主約束,並確保在插入新記錄時爲該列分配新的guid(例如,使用newid()函數)。

0

我想不出有什麼好的理由有一個由3個表共享的唯一編號,爲什麼不給每個表使用外鍵引用的唯一索引?索引字段的查詢速度比隨機數字要快。

我會用外鍵CityId,StateId & CountryId創建一個'Location'表來邏輯地鏈接它們。

編輯: 如果你要在城市,州和國家表中添加一個唯一的ID,那麼爲什麼不把它們作爲同一個表中的字段呢?我會認爲你將它們分成3個表格的原因是爲了減少數據庫中的重複。

相關問題