我对数据库设计比较陌生。
我最近了解到,EER中的关系可以拥有属性,因此构建了以下实体。
LibraryMembers (MEMBERID)
书籍 (BOOKID)
这两个实体通过关系“保留”连接,每本书可以由0到1个LibraryMember保留,每个LibraryMember可以保留0到多本书。
现在,问题来了。我已经将时间和日期等属性分配给“保留”关系,我不知道如何将其转换为关系模式。 LibraryMembers和Books之间的关系并不是很多,是否仍然可以创建一个名为“reserve”的表来链接它们?
(我被教导只有当关系从多个EER映射到多个EER时才会创建一个附加表)
非常感谢帮助,谢谢。
答案 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评论的同时被保留两次。