Senior
Je potrebné opísať model knižnice. Existujú 3 entity: «Autor», «Kniha», «Čitateľ». Fyzicky je len jedna kniha a môže byť len pri jednom čitateľovi. Je potrebné vytvoriť tabuľky pre knižnicu, ktoré to zohľadnia. Jedna kniha môže mať viacerých autorov.
sobes.tech AI
Odpoveď od 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 реализует связь многие-ко-многим между книгами и авторами.