【问题标题】:Multiple Primary Keys For Table表的多个主键
【发布时间】:2014-03-17 06:18:59
【问题描述】:

您好,我对 SQL 比较陌生,我使用的是 Microsoft SQL Server

我希望制作一个将两个表(A 和 B)链接在一起的数据透视表。然而,链接旨在是动态的。这意味着从 A 到 B 的链接将被频繁地创建和删除。

A和B的关系是一对多的(一个A可以有多个B)

我想使用集群主键,但似乎无法创建一个,因为到 A 的链接类型是 varchar(max) 而到 B 的链接是 int。

在 Microsoft SQL Server Management Studio 中,我通常会在设计窗口中选择两列并将它们设为主键。但是该选项是灰色的。

有没有办法让许多不同类型的不同列成为聚集主键,还是我以错误的方式解决这个问题?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    不,不可能。 PRIMARY 表示 FIRST,MAIN - 只能有一个。

    您可以拥有无​​限数量(实际上)的唯一索引,但只有一个可以作为主键,并且只有一个(不一定是相同的)可以作为聚集索引。

    现在,在外键关系中使用 varchar(max) - 这是您应该解决的核心问题。有人真的很喜欢这个数据库设计得非常好。我们可以谈论在键中一般使用 varchar,但 varchar(max) 用于大量文本存储,不能成为任何索引的一部分(在不能在关系中使用的全文索引之外)。我建议先解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-25
      • 2014-07-25
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      相关资源
      最近更新 更多