Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否可以在字段不是主键的情况下生成外键?_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 是否可以在字段不是主键的情况下生成外键?

Sql 是否可以在字段不是主键的情况下生成外键?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,比如说 create table Equipment ( Equipmenttype nvarchar(1, Description nvarchar(10), Primary Key (Equipmenttype) ) Create table Room ( RoomID nvarchar(8), Capacity numeric(3), Roomtype(fk,nvarchar(2) ) 我想创建下表 create table RoomEquipment( (RoomID here

比如说

create table Equipment (

Equipmenttype nvarchar(1,
Description nvarchar(10),
Primary Key (Equipmenttype)
)

Create table Room (

RoomID nvarchar(8),
Capacity numeric(3),
Roomtype(fk,nvarchar(2)

)
我想创建下表

create table RoomEquipment(
(RoomID here)
(Equipmenttype here)

但是
Equipmenttype
不是主键。

Equipmenttype
在它自己的表
Equipment
中是主键,
RoomID
应该是
房间的主键


所以
RoomEquipment
是一个标准的多对多关系表

Equipmenttype
在其自己的表
Equipment
中是一个主键,
RoomID
应该是
Room
的主键


所以
RoomEquipment
是一个标准的多对多关系表

您可以在
PK
unque
列上创建
外键

因此,您必须在
RoomID
上创建一个唯一索引:

CREATE UNIQUE INDEX UI_Room_RoomID ON dbo.Room(RoomID); 

现在,您可以在表
RoomEquipment

中创建
外键
,您可以在
PK
unque
列上创建
外键

因此,您必须在
RoomID
上创建一个唯一索引:

CREATE UNIQUE INDEX UI_Room_RoomID ON dbo.Room(RoomID); 

现在,您可以在表
RoomEquipment
中创建
外键
,外键约束不必仅链接到另一个表中的主键约束;还可以将其定义为引用另一个表中唯一约束的列


来源:

外键约束不必仅链接到另一个表中的主键约束;还可以将其定义为引用另一个表中唯一约束的列


来源:

否。您不能仅为任何列创建外键。这没有任何逻辑意义。当然,在您的示例中,您声明EquipmentType是主键。RoomID不是PK。如果您想这样做,那么您在数据库设计中发现了一个缺陷。不需要PK,一个备用键(唯一约束)也应该可以工作。任何表都应该包含PK,这已经是因为您查询的sNo性能。不能仅为任何列创建外键。这没有任何逻辑意义。当然,在您的示例中,您声明EquipmentType是主键。RoomID不是PK。如果要这样做,则发现数据库设计中存在缺陷。无需PK,备用键(唯一约束)也应起作用。任何表都应包含PK,这已经是因为查询的性能