Senior
Potrebno je opisati model biblioteke. Postoje 3 entiteta: «Autor», «Knjiga», «Čitalac». Fizički, postoji samo jedna knjiga i može biti kod samo jednog čitaoca. Potrebno je napraviti tabele za biblioteku koje će to uzeti u obzir. Jedna knjiga može imati više autora.
sobes.tech АИ
Одговор од АИ
Для описания модели библиотеки с сущностями «Автор», «Книга» и «Читатель», учитывая, что:
- Физически книга только одна и может быть только у одного читателя.
- У книги может быть несколько авторов.
Можно предложить следующие таблицы:
-- Таблица авторов
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 реализует связь многие-ко-многим между книгами и авторами.