有谁能告诉我如何在SQL(服务器)中的表之间建立1 to 0..1
和1 to 1..*
关系?
非常感谢。
答案 0 :(得分:5)
1到1 .. *
从父表创建外键到子项的主键(查找表)。
CREATE TABLE A
(
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
Somecolumn int,
SomeOtherColumn Varchar(50),
B_id int CONSTRAINT FOREIGN KEY REFERENCES B(id),
-- ...other columns
)
CREATE TABLE B
(
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
Name Varchar(50)
)
1到0..1
创建一个表,主键也定义为父表的外键
CREATE TABLE [Master]
(
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
Somecolumn int,
SomeOtherColumn Varchar(50),
-- ...other columns
)
CREATE TABLE [Child]
(
id int NOT NULL PRIMARY KEY,
OtherColumn Varchar(50),
)
ALTER TABLE Child
ADD CONSTRAINT FK_Master FOREIGN KEY (id) REFERENCES Master(id)
答案 1 :(得分:1)
一对多
这意味着表A可以有一个或多个与表B中单个记录相关的记录。
如果已经有表,请使用ALTER TABLE语句创建外键约束:
ALTER TABLE A ADD CONSTRAINT FOREIGN KEY fk_b(b_id)引用b(id)
* fk_b: Name of the foreign key constraint, must be unique to the database
* b_id: Name of column in Table A you are creating the foreign key relationship on
* b: Name of table, in this case b
* id: Name of column in Table B