spring-petclinic/src/main/resources/db/postgres/schema.sql

53 lines
1.4 KiB
MySQL
Raw Normal View History

CREATE TABLE IF NOT EXISTS vets (
2021-12-07 11:46:58 +00:00
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
first_name TEXT,
last_name TEXT
);
CREATE INDEX ON vets (last_name);
CREATE TABLE IF NOT EXISTS specialties (
2021-12-07 11:46:58 +00:00
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name TEXT
);
CREATE INDEX ON specialties (name);
CREATE TABLE IF NOT EXISTS vet_specialties (
2021-12-07 11:46:58 +00:00
vet_id INT NOT NULL REFERENCES vets (id),
specialty_id INT NOT NULL REFERENCES specialties (id),
UNIQUE (vet_id, specialty_id)
);
CREATE TABLE IF NOT EXISTS types (
2021-12-07 11:46:58 +00:00
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name TEXT
);
CREATE INDEX ON types (name);
CREATE TABLE IF NOT EXISTS owners (
2021-12-07 11:46:58 +00:00
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
first_name TEXT,
last_name TEXT,
address TEXT,
city TEXT,
telephone TEXT
);
CREATE INDEX ON owners (last_name);
CREATE TABLE IF NOT EXISTS pets (
2021-12-07 11:46:58 +00:00
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name TEXT,
birth_date DATE,
type_id INT NOT NULL REFERENCES types (id),
owner_id INT REFERENCES owners (id)
2021-12-07 11:46:58 +00:00
);
CREATE INDEX ON pets (name);
CREATE INDEX ON pets (owner_id);
CREATE TABLE IF NOT EXISTS visits (
2021-12-07 11:46:58 +00:00
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
pet_id INT REFERENCES pets (id),
2021-12-07 11:46:58 +00:00
visit_date DATE,
description TEXT
);
CREATE INDEX ON visits (pet_id);