Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP TABLE IF EXISTS ingredient_stock;
- DROP TABLE IF EXISTS provider_ingredient;
- DROP TABLE IF EXISTS pizza_ingredient;
- DROP TABLE IF EXISTS ingredient;
- DROP TABLE IF EXISTS provider;
- DROP TABLE IF EXISTS order_item;
- DROP TABLE IF EXISTS "order";
- DROP TABLE IF EXISTS customer;
- DROP TYPE IF EXISTS order_status;
- DROP TABLE IF EXISTS pizza;
- CREATE TABLE pizza
- (
- name TEXT PRIMARY KEY,
- price NUMERIC NOT NULL CHECK ( price > 0 ),
- weight NUMERIC NOT NULL CHECK ( weight > 0 )
- );
- CREATE TABLE ingredient
- (
- id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
- name TEXT NOT NULL UNIQUE
- );
- CREATE TABLE pizza_ingredient
- (
- ingredient_id INT REFERENCES ingredient,
- pizza TEXT REFERENCES pizza,
- weight NUMERIC NOT NULL CHECK ( weight > 0 ),
- PRIMARY KEY (ingredient_id, pizza)
- );
- CREATE TABLE ingredient_stock
- (
- ingredient_id INT PRIMARY KEY REFERENCES ingredient,
- weight NUMERIC NOT NULL CHECK ( weight > 0 )
- );
- CREATE TABLE customer
- (
- phone_number TEXT PRIMARY KEY CHECK ( phone_number ~ '^8[0-9]{10}$' ),
- discount NUMERIC
- );
- CREATE TYPE order_status AS ENUM ('принят', 'в обработке', 'отгружен', 'выполнен');
- CREATE TABLE "order"
- (
- id SERIAL PRIMARY KEY,
- date timestamp NOT NULL,
- customer TEXT NOT NULL REFERENCES customer,
- address TEXT NOT NULL,
- status order_status NOT NULL
- );
- CREATE TABLE order_item
- (
- order_id INT REFERENCES "order",
- pizza TEXT REFERENCES pizza,
- count INT NOT NULL,
- PRIMARY KEY (order_id, pizza)
- );
- CREATE TABLE provider
- (
- id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
- org_name TEXT NOT NULL ,
- phone_number TEXT NOT NULL CHECK ( phone_number ~ '^8[0-9]{10}$' ),
- UNIQUE (org_name, phone_number)
- );
- CREATE TABLE provider_ingredient(
- provider_id INT REFERENCES provider,
- ingredient_id INT REFERENCES ingredient,
- price NUMERIC NOT NULL,
- PRIMARY KEY (provider_id, ingredient_id)
- );
Advertisement
Add Comment
Please, Sign In to add comment