假设我的数据库中只有 2 个表。这两个表是:InputType 和 HardwareType。每个表都使用 GUID 作为它们的主键。从 InputType 到 HardwareType 有一个外键。

我遇到的问题是会有多行 InputType 引用 HardwareType 中的同一行(即每种类型的硬件有多个输入)。问题是我在 InputType 中引用 HardwareType 中的 GUID 的列不允许重复——因此,不允许每个硬件类型有多个输入。

我可能可以通过将 InputType 中列的数据类型设置为“varchar”或其他东西而不是“uniqueidentifier”来解决这个问题,但是我必须这样做吗?当它不是主键而是另一个表的外键时,是否有某种方式允许重复的 GUID 条目?

帮助表示赞赏!谢谢。

最佳答案

仅仅因为数据类型是 UNIQUEIDENTIFIER 并不意味着您不能在该列中多次使用相同的值!

CAN 实际上 - 当然,除非你已经明确地在该列上添加了 UNIQUE CONSTRAINTUNIQUE INDEX - 这是你的选择,但默认情况下没有任何应用,除非你自己做一些事情。

因此,您应该能够使用 HardwareTypeInputType 引用 UNIQUEIDENTIFIER - 即使 InputType 中的多行将引用 HardwareType 中的同一行 - 完全没有问题。

关于sql-server-2008 - 在 SQL Server 2008 中允许重复的唯一标识符吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6523619/

10-13 00:51