1

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

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

图书馆成员 (memberID)

书籍(bookID)

两个实体通过关系“reserve”连接,每本书可以被0到1个LibraryMember预约,每个LibraryMember可以预约0到多本书。

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

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

非常感谢您的帮助,谢谢。

4

1 回答 1

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 评论的那样。

于 2013-03-24T08:16:33.660 回答