2010-10-26 71 views
16

有誰知道如何從SQL Server數據庫圖創建一對一的關係?如何創建一對一的關係SQL服務器圖

+4

- | - | ----------------------------------- | - | - ? – joni 2010-10-26 06:36:21

+0

請解釋一下,你究竟是什麼 - 一張圖片或2張表與數據庫中的一對一關係? – ika 2010-10-26 06:38:01

+0

你能更具體嗎?或者您是否嘗試過使用谷歌?如果您遇到問題,請嘗試提供更多詳情! – 2010-10-26 06:54:12

回答

33

你需要把unique key constraint on top of the foreign key,所以它限制爲一對一的關係。

+1

正是我以後.. – user384080 2010-10-26 08:45:22

+4

how..in設計師? – 2017-02-16 15:51:26

5

假設您使用的是Sql Server 2008以及SSMS。

  1. 最簡單的方法是從設計器表面的主表中抓取關鍵字,然後將關鍵字直接放在次表上,直接放在主關鍵字上。
  2. 一秒鐘後,將彈出兩個對話框,在活動對話框中確認拖放過程中涉及的兩個鍵實際上是P.K,並按O.K.
  3. 最後,第二表中確認您想應用像級聯功能等

一旦再次單擊確定第二次,SSMS設計器將顯示一鍵任何限制和任何其他設置所涉及的表格之間的關鍵關係。這是一個一對一的關係。閱讀爲,一張表中的一條記錄直接與另一張表中的另一條記錄相關。

即一個ResolutionsTable - 1:1 - 閱讀爲一體的分辨率分辨率類型 有一個分辨率類型適用於它,即,結案或正在進行的情況下,以等候法律的變化,情況被拒絕了?當然,人們有不同的數據庫設計技能,所以對於其中一個人可能不適合另一個db開發人員。從來沒有這個例子足夠清楚地瞭解。

希望這會幫助任何非SQL語法的精明noobies像我一樣喜歡通過SQL Database Diagram功能來構建整個數據庫。

+1

哦,太棒了。我從來沒有想過將Table1的PK拖到Foreign Table PK上來做1比1 ... +1 - 真的幫助我。謝謝 – ppumkin 2013-04-29 09:00:37

2

,如果你的表是這樣的創建,

 
CREATE TABLE tableName (
    id INT NOT NULL IDENTITY(1,1) CONSTRAINT[PK:tableName] PRIMARY KEY(id) 
     , fkId INT NOT NULL 
      CONSTRAINT[FK:tableName:tableFk] 
      FOREIGN KEY(fkId) 
      REFERENCES tableFk(id) 
) 

CREATE TABLE tableFk (
    id INT NOT NULL IDENTITY(1,1) CONSTRAINT[PK:tableFk] PRIMARY KEY(id) 
) 

你可以用這個代碼來設置tableName.fkId獨特

 
ALTER TABLE tableName 
    ADD UNIQUE (fkId) 
2

您可以輕鬆地使用MSSQL Management Studio中更改表名。

table_user

UID(PK) 用戶名 電子郵件

table_profile

PID(PK) f_name l_name USER_ID(FK)

  1. 右鍵單擊user_id(fk)。
  2. 索引/鍵...
  3. 您可以獲取索引/鍵窗口。

然後按照這個,

4選擇「添加」(從索引/鍵窗口,這將增加一個新的名字)

5在「常規節」選擇「列」,然後選擇「USER_ID」

6在「常規部分」套「是唯一的」作爲一個真正的

7在「身份節」給出(名稱)部分的名稱。在這種情況下,我會所有這些上述步驟後,得到UK_user_id_profile

8,靠近索引/鍵窗口

9拖放「UID」(從用戶表)轉換成「USER_ID」(從配置文件表)

就是這樣。

背後的理論,外鍵應該是一個獨特的。

您需要在外鍵上加上一個唯一的鍵約束,因此 其限制爲一對一關係。

這就是阿扎姆在他的帖子中所說的。

[在這種情況下,我正在使用MSSQL 2012]

乾杯。

0

我相信這個問題是關於如何在SQL Server Management Studios圖表窗口中創建一對一關係的。我有一個過程,可以在SQL Server Management Studio數據庫關係圖中創建一對一的關係。

  1. 創建兩個表(A和B),讓表B沒有主鍵。
  2. 將來自表的關係表B的參考柱(任何匹配類型列,任何名稱)(主鍵這將首先創建一個一對多的關係
  3. 圖保存(如果你沒有在這裏保存您可能會在變更腳本中發生衝突)
  4. 轉到表B並右鍵單擊該列並將其設置爲主鍵(這會將關係更改爲一對一)
  5. 保存圖

你完成了!