如何将关系(具有属性)转换为关系模式/ sql?

时间:2013-03-24 07:39:10

标签: sql database

我对数据库设计比较陌生。

我最近了解到,EER中的关系可以拥有属性,因此构建了以下实体。

LibraryMembers (MEMBERID)

书籍 (BOOKID)

这两个实体通过关系“保留”连接,每本书可以由0到1个LibraryMember保留,每个LibraryMember可以保留0到多本书。

现在,问题来了。我已经将时间和日期等属性分配给“保留”关系,我不知道如何将其转换为关系模式。 LibraryMembers和Books之间的关系并不是很多,是否仍然可以创建一个名为“reserve”的表来链接它们?

(我被教导只有当关系从多个EER映射到多个EER时才会创建一个附加表)

非常感谢帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在此类预订中映射成员和图书

CREATE TABLE members(
member_id INT,
member_name VARCHAR(64),
PRIMARY KEY(member_id)
);

CREATE TABLE books(
book_id INT,
title VARCHAR(64),
PRIMARY KEY(book_id)
);

CREATE TABLE reservations(
reservation_id INT,
book_id INT,
member_id INT,
reservation_date DATETIME,
PRIMARY KEY(reservation_id),
CONSTRAINT FOREIGN KEY (book_id) REFERENCES books (book_id),
CONSTRAINT FOREIGN KEY (member_id) REFERENCES members (member_id)
);

但是你仍然需要实现一个逻辑,防止书籍在@Najzero评论的同时被保留两次。