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


-- Включаем поддержку внешних ключей (по умолчанию в SQLite они выключены)
PRAGMA foreign_keys = ON;

-- 1. Таблица владельцев (owners)
CREATE TABLE owners (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    first_name TEXT NOT NULL,
    last_name TEXT NOT NULL
);

-- 2. Таблица типов питомцев (types)
-- По заданию: "Собака"; auto, "Кошка" (auto означает автоматическое создание ID)
CREATE TABLE types (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL
);

-- Наполняем таблицу типов данными из задания
INSERT INTO types (name) VALUES ('Собака');
INSERT INTO types (name) VALUES ('Кошка');

-- 3. Таблица питомцев (pets)
CREATE TABLE pets (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    owner_id INTEGER,
    type_id INTEGER,
    age INTEGER,
    FOREIGN KEY (owner_id) REFERENCES owners(id) ON DELETE SET NULL,
    FOREIGN KEY (type_id) REFERENCES types(id) ON DELETE SET NULL
);

-- 4. Таблица мест/локаций (places)
CREATE TABLE places (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    address TEXT NOT NULL
);

-- 5. Связующая таблица "Питомцы-Места" (place_pets)
-- Составной первичный ключ (place_id + pet_id)
CREATE TABLE place_pets (
    place_id INTEGER,
    pet_id INTEGER,
    PRIMARY KEY (place_id, pet_id),
    FOREIGN KEY (place_id) REFERENCES places(id) ON DELETE CASCADE,
    FOREIGN KEY (pet_id) REFERENCES pets(id) ON DELETE CASCADE
);