Загрузка данных


CREATE TABLE genres (
    id   INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    name TEXT    NOT NULL UNIQUE
);

-- Связующая таблица many-to-many: книги <-> жанры
CREATE TABLE book_genres (
    book_id  INTEGER NOT NULL,
    genre_id INTEGER NOT NULL,

    PRIMARY KEY (book_id, genre_id),

    FOREIGN KEY (book_id)  REFERENCES books(id)  ON DELETE CASCADE,
    FOREIGN KEY (genre_id) REFERENCES genres(id) ON DELETE CASCADE
);

-- Таблица издательств
CREATE TABLE publishers (
    id      INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    name    TEXT    NOT NULL,
    city    TEXT,
    founded INTEGER
);

-- Связь one-to-many: у книги одно издательство, у издательства много книг
-- Добавляем колонку в books через ALTER
ALTER TABLE books ADD COLUMN publisher_id INTEGER
    REFERENCES publishers(id) ON DELETE SET NULL;