Sobes.tech
Назад к вопросам
Senior
6

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

Компании, где спрашивали
Ozon ФинтехOzon Финтех

Ответ от нейросети

sobes.tech AI

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

  1. Автор (Author)
  • id (PK)
  • name
  • другие поля (биография, дата рождения и т.д.)
  1. Книга (Book)
  • id (PK)
  • title
  • author_id (FK на Author.id)
  • reader_id (FK на Reader.id, nullable)
  1. Читатель (Reader)
  • id (PK)
  • name
  • другие поля (контактные данные и т.д.)

Объяснение:

  • Каждая книга связана с одним автором через author_id.
  • Поле reader_id в таблице книг указывает, у какого читателя сейчас находится книга. Если книга не выдана, это поле NULL.
  • Так как книга может быть только у одного читателя, связь "книга — читатель" реализована через внешний ключ в таблице книг.

Таким образом, модель отражает уникальность книги и её принадлежность одному читателю.

Пример SQL-схемы:

CREATE TABLE Author (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL
);

CREATE TABLE Reader (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL
);

CREATE TABLE Book (
  id SERIAL PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  author_id INTEGER NOT NULL REFERENCES Author(id),
  reader_id INTEGER REFERENCES Reader(id)
);