1

私はデータベース設計に比較的慣れていません。

最近、EERの関係が属性を持つことができることを知り、次のエンティティを構築しました。

LibraryMembers(memberID)

書籍(bookID)

2つのエンティティは「予約」という関係で接続されており、各本は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のコメントと同時に本が2回予約されるのを防ぐロジックを実装する必要があります。

于 2013-03-24T08:16:33.660 に答える