Sobes.tech
Senior

Het is nodig om het model van de bibliotheek te beschrijven. Er zijn 3 entiteiten: «Auteur», «Boek», «Lezer». Fysiek is er maar één boek en het kan maar bij één lezer zijn. Tabellen voor de bibliotheek moeten dit in overweging nemen. Een boek kan meerdere auteurs hebben.

sobes.tech AI

Antwoord van AI

Для описания модели библиотеки с сущностями «Автор», «Книга» и «Читатель», учитывая, что:

  • Физически книга только одна и может быть только у одного читателя.
  • У книги может быть несколько авторов.

Можно предложить следующие таблицы:

-- Таблица авторов
CREATE TABLE Authors (
  AuthorID INT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL
);

-- Таблица книг
CREATE TABLE Books (
  BookID INT PRIMARY KEY,
  Title VARCHAR(255) NOT NULL
);

-- Таблица читателей
CREATE TABLE Readers (
  ReaderID INT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL
);

-- Связующая таблица для авторов и книг (многие ко многим)
CREATE TABLE BookAuthors (
  BookID INT,
  AuthorID INT,
  PRIMARY KEY (BookID, AuthorID),
  FOREIGN KEY (BookID) REFERENCES Books(BookID),
  FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)
);

-- Таблица для учёта, у какого читателя находится книга (один к одному)
CREATE TABLE BookLoans (
  BookID INT PRIMARY KEY,
  ReaderID INT UNIQUE,
  LoanDate DATE,
  FOREIGN KEY (BookID) REFERENCES Books(BookID),
  FOREIGN KEY (ReaderID) REFERENCES Readers(ReaderID)
);

Здесь BookLoans гарантирует, что каждая книга может быть выдана только одному читателю, а у читателя может быть не более одной такой книги (если нужно разрешить несколько книг у одного читателя, убрать UNIQUE с ReaderID). Таблица BookAuthors реализует связь многие-ко-многим между книгами и авторами.