Sql 多对多关系

本文探讨了在Sql数据库中实现多对多关系的常见方法,以图书和作者为例,解释了如何通过中间外键表来管理这种复杂关联,确保每个图书可以关联多个作者,同时一个作者可以创作多本图书。
摘要由CSDN通过智能技术生成

多对多关系的典型设计就是图书表和作者表,一本图书可以有多个作者,而一个作者可以写多本图书,两者的关系通过一张中间外键表维护

--创建基表
CREATE TABLE [dbo].[Book] --图书表
(
[ID] [int] NOT NULL IDENTITY(1, 1),
[Name] [nvarchar] (max) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Book] ADD CONSTRAINT [PK_dbo.Book] PRIMARY KEY CLUSTERED  ([ID]) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Author] --作者表
(
[ID] [int] NOT NULL IDENTITY(1, 1),
[Name] [nvarchar] (max) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Author] ADD CONSTRAINT [PK_dbo.Author] PRIMARY KEY CLUSTERED  ([ID]) ON [PRIMARY]
GO

CREATE TABLE [dbo].[BookAuthor] --图书作者关联表
(
[Book_ID] [int] NOT NULL,
[Author_ID] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[BookAuthor] ADD CONSTRAINT [PK_dbo.BookAuthor] PRIMARY KEY CLUSTERED  ([Book_ID], [Author_ID]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_Book_ID] ON [dbo].[BookAuthor] ([Book_ID]) ON 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值