Sobes.tech
Back to questions
Senior
3

//Нужно описать модель библиотеки. Есть 3 сущности: "Автор", "Книга", "Читатель" Физически книга только одна и может быть только у одного читателя. Нужно составить таблицы для библиотеки так что бы это учесть.

Companies where asked
Small

Answer from AI

sobes.tech AI

Для описания модели библиотеки с сущностями "Автор", "Книга" и "Читатель", учитывая, что каждая книга существует в единственном экземпляре и может быть у одного читателя, можно предложить следующие таблицы:

-- Таблица Авторов
CREATE TABLE authors (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL
);

-- Таблица Книг
CREATE TABLE books (
  id SERIAL PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  author_id INT NOT NULL REFERENCES authors(id),
  reader_id INT UNIQUE REFERENCES readers(id) -- книга может быть у одного читателя или ни у кого
);

-- Таблица Читателей
CREATE TABLE readers (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL
);

Объяснение:

  • Каждая книга связана с одним автором через author_id.
  • Поле reader_id в таблице books указывает, кто сейчас владеет книгой. Оно уникально, чтобы одна книга не могла быть у нескольких читателей.
  • Если книга не выдана, reader_id будет NULL.

Такой подход отражает физическую уникальность книги и её текущего владельца.