【问题标题】:How to create one to one relationship SQL server diagram如何创建一对一关系 SQL server 图
【发布时间】:2010-10-26 06:33:07
【问题描述】:

有人知道如何从 SQL Server 数据库图表创建一对一关系吗?

【问题讨论】:

  • -|-|------------------------------------------------|-| - ?
  • 请解释一下你实际上是什么 - 一张图片或 2 张在数据库中具有一对一关系的表?
  • 你能说得更具体点吗?或者你试过用谷歌吗?如果您有问题,请尝试提供更多详细信息!

标签: .net sql-server


【解决方案1】:

您需要输入unique key constraint on top of the foreign key,因此它仅限于一对一关系。

【讨论】:

  • 如何..在设计器中?
【解决方案2】:

假设您使用的是 Sql Server 2008 及更高版本和 SSMS。

  1. 最简单的方法是从设计器界面的主表中获取键,然后将键放在辅助表上,直接放在主键上。
  2. 一秒钟后,将弹出两个对话框,在活动对话框中确认拖放过程中涉及的两个键实际上是各自表中的 P.K,然后按 OK。
  3. 最后,在第二个表格中确认您希望应用的任何约束和任何其他设置,例如级联功能等。

第二次再次单击“确定”后,SSMS 设计器将显示相关表之间的键对键关系。这是一对一的关系。读作,一张表中的一条记录直接与另一张表中的另一条记录相关。

即分辨率表 - 1 : 1 - 分辨率类型 阅读为一种解决方案适用于一种解决方案类型,即案件已结案或案件正在进行中,案件待定法律变更,案件被拒绝?当然,人们有不同的数据库设计技能,所以对一个人有用的东西可能对另一个数据库开发人员不起作用。无论如何,这个例子足够清晰,可以理解。

希望这将帮助像我这样喜欢通过 SQL 数据库图表功能构建整个数据库的任何非 sql 语法精通的菜鸟。

【讨论】:

  • 哦,太棒了。我从没想过将 Table1 的 PK 拖到 Foreign Tables PK 上以进行 1 比 1 ... +1 - 真的帮助了我。谢谢
【解决方案3】:

如果你的表是这样创建的,

创建表表名( id INT NOT NULL IDENTITY(1,1) CONSTRAINT[PK:tableName] PRIMARY KEY(id) , fkId INT NOT NULL 约束[FK:tableName:tableFk] 外键(fkId) 参考 tableFk(id) ) 创建表 tableFk ( id INT NOT NULL IDENTITY(1,1) CONSTRAINT[PK:tableFk] PRIMARY KEY(id) )

您可以使用此代码更改 tableName 以将 tableName.fkId 设置为唯一

ALTER TABLE 表名 添加唯一(fkId)

【讨论】:

    【解决方案4】:

    您可以轻松使用 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 在“General section”中选择“Columns”,然后选择“user_id”

    6 在“General section”中将“Is Unique”设置为 true

    7 在“身份部分”中为(名称)部分命名。在这种情况下,我会给 UK_user_id_profile

    8 完成上述所有步骤后,关闭 Indexes / Keys 窗口

    9 将“uid”(来自用户表)拖放到“user_id”(来自配置文件表)中

    就是这样。

    这背后的理论,外键应该是唯一的。

    你需要在外键之上放置一个唯一键约束,所以 它仅限于一对一的关系。

    这就是阿扎姆在他的帖子中所说的。

    [以防万一,我使用的是 MSSQL 2012]

    干杯。

    【讨论】:

      【解决方案5】:

      我相信这个问题专门围绕如何在 SQL Server Management Studios 图表窗口中创建一对一关系。我有一个过程,您可以在其中创建 SQL Server Management Studio 数据库图中的一对一关系。

      1. 创建两个表(A 和 B),让表 B 没有主键。
      2. 将关系从表 A 的主键拖到表 B 的引用列(任何匹配类型的列、任何名称)(这将最初创建一对多关系
      3. 保存图表(如果您不在这里保存,您可能会在更改脚本中遇到冲突)
      4. 转到表 B 并右键单击该列并将其设置为主键(这会将关系更改为一对一)
      5. 保存图表

      你已经完成了!

      【讨论】:

        【解决方案6】:

        当您使用以下内容时,它非常简单:

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

        这应该可以解决问题!!!

        【讨论】:

          猜你喜欢
          • 2012-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-12
          • 2014-11-22
          • 1970-01-01
          • 2023-03-16
          相关资源
          最近更新 更多