-- Включаем поддержку внешних ключей (по умолчанию в 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
);