Sobes.tech
Senior

Модели китобхона бояд тавсиф карда шавад. 3 мавҷудият ҳастанд: «Муаллиф», «Китоб», «Муҳассил». Физикӣ, танҳо як китоб вуҷуд дорад ва метавонад танҳо дар як муҳассил бошад. Таблиҳо барои китобхона бояд инро ба назар гирад. Як китоб метавонад чанд муаллиф дошта бошад.

sobes.tech AI

Ҷавоб аз 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 реализует связь многие-ко-многим между книгами и авторами.