Назад к вопросам
OZON
Middle+
3
Нужно описать модель библиотеки. Есть 3 сущности: "Автор", "Книга", "Читатель" Физически книга только одна и может быть только у одного читателя. Нужно составить таблицы для библиотеки так что бы это учесть.
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для описания модели библиотеки с сущностями "Автор", "Книга" и "Читатель" и учетом того, что каждая книга физически одна и может быть у одного читателя, можно предложить следующую структуру таблиц:
- Автор (Author)
- id (PK)
- имя
- другие данные (например, биография)
- Книга (Book)
- id (PK)
- название
- id_автора (FK на Author.id)
- id_читателя (FK на Reader.id, nullable)
- Читатель (Reader)
- id (PK)
- имя
- другие данные
Объяснение:
- Каждая книга связана с одним автором через внешний ключ.
- Поле
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 INT NOT NULL REFERENCES Author(id),
reader_id INT REFERENCES Reader(id) -- NULL, если книга свободна
);
Такой дизайн учитывает, что книга физически одна и может быть у одного читателя.