如何创建一对一的关系SQL服务器图

时间:2010-10-26 06:33:07

标签: .net sql-server

有谁知道如何从SQL Server数据库图创建一对一的关系?

6 个答案:

答案 0 :(得分:35)

你需要放一个unique key constraint on top of the foreign key,所以它只限于一对一的关系。

答案 1 :(得分:6)

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

  1. 最简单的方法是从设计器表面的主表中抓取密钥,然后将密钥放在辅助表上,直接放在主键上。
  2. 一秒钟之后,会弹出两个对话框,在活动对话框中确认拖放过程中涉及的两个键实际上是各自表中的P.Ks并按下O.K。
  3. 最后,在第二个表格中确认您想要应用的任何约束和任何其他设置,如级联功能等。
  4. 第二次再次单击O.K后,SSMS Designer将显示所涉及的表之间关键关系的键。这是一对一的关系。读为,一个表中的一个记录直接与另一个表中的另一个记录相关。

    即A ResolutionsTable - 1:1 - 分辨率类型 读作为一个决议有一种适用于它的决议类型,即案件结案或案件正在进行,案件待决法律变更,案件被驳回?当然,人们拥有不同的数据库设计技能,因此适用于其中的人可能无法为其他数据库开发人员工然而,这个例子很清楚,无法理解。

    希望这将有助于任何非s​​ql语法精明的noobies像我一样喜欢通过SQL数据库图表功能构建整个数据库。

答案 2 :(得分: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,将tableName.fkId设置为唯一

ALTER TABLE tableName
    ADD UNIQUE (fkId)

答案 3 :(得分: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. 您可以获得Indexes / Keys窗口。
  4. 然后按照这个,

    4选择"添加" (从Indexes / Keys窗口,它将添加一个新名称)

    5 In" General section"选择"列"然后选择" user_id"

    6 In" General section"设置"独特"作为一个真实的

    7 In" Identity部分"给(名称)部分命名。在这种情况下,我将给出UK_user_id_profile

    完成上述所有步骤后,

    8,关闭Indexes / Keys窗口

    9拖放" uid" (从用户表)到" user_id" (来自个人资料表)

    就是这样。

    背后的理论认为,外键应该是独一无二的。

      

    您需要在外键的顶部放置一个唯一的键约束,所以   它只限于一对一的关系。

    Azam在他的帖子中说道。

    [在案例中,我正在使用MSSQL 2012]

    干杯。

答案 4 :(得分:0)

我认为这个问题专门针对如何在SQL Server Management Studios Diagram窗口中创建一对一关系。我有一个过程,您可以在SQL Server Management Studio数据库图中创建一对一的关系。

  1. 创建两个表(A和B),保留表B没有主键。
  2. 将关系从表A主键拖到表B的引用列(任何匹配类型列,任何名称)(这最初将创建一对多关系
  3. 保存图表(如果您未在此处保存,则可能会在更改脚本中出现冲突)
  4. 转到表格B并右键单击该列并将其设置为主键(这会将关系更改为一对一)
  5. 保存图表
  6. 你已经完成了!

答案 5 :(得分:0)

使用以下内容非常简单:

ALTER TABLE [Salary]
ADD CONSTRAINT FK_Salary_Employee FOREIGN KEY([EmployeeID]) 
    REFERENCES [Employee]([ID]);

那应该可以解决的!!