N: m —— > 如果你不知道 n 和 m,那么它只是多对多,并且它由一个桥表表示在另外两个表之间,比如
-- This table will hold our phone calls.
CREATE TABLE dbo.PhoneCalls
(
ID INT IDENTITY(1, 1) NOT NULL,
CallTime DATETIME NOT NULL DEFAULT GETDATE(),
CallerPhoneNumber CHAR(10) NOT NULL
)
-- This table will hold our "tickets" (or cases).
CREATE TABLE dbo.Tickets
(
ID INT IDENTITY(1, 1) NOT NULL,
CreatedTime DATETIME NOT NULL DEFAULT GETDATE(),
Subject VARCHAR(250) NOT NULL,
Notes VARCHAR(8000) NOT NULL,
Completed BIT NOT NULL DEFAULT 0
)
这是用于实现两个表之间映射的桥表
CREATE TABLE dbo.PhoneCalls_Tickets
(
PhoneCallID INT NOT NULL,
TicketID INT NOT NULL
)
在关系数据库中,所有类型的关系都以相同的方式表示: 即关系。每个关系的候选关键字(可能还有其他约束)决定了所表示的关系类型。1: n 和 m: n 是两种二元关系:
C {Employee*,Company}
B {Book*,Author*}
在每种情况下 * 指定键属性。{ Book,Author }是复合键。
C 是一种关系,其中每个员工只为 一公司工作,但每个公司可能有 很多员工(1: n) :
B 是一种关系,一本书可以有 很多的作者,一个作者可以写 很多的书(m: n) :
请注意,关键约束确保每个雇员只能与一家公司关联,而任何书籍和作者的组合都是允许的。
其他类型的关系也是可能的: n 元(有两个以上的组成部分) ; 固定基数(m: n,其中 m 和 n 是固定常数或范围) ; 方向性; 等等。William Kent 在他的《数据与现实》一书中指出至少有432种——这还只是二元关系。在实践中,二进制关系1: n 和 m: n 非常常见,通常在设计和理解数据模型时特别重要。
1:N means:
One book can have **many** pages. One page can only be in **one** book.
N:N means:
One book can have **many** pages. And one page can be in **many** books.