2020-05-31 15:43:26 -05:00
|
|
|
-- CREATE EXTENSION IF NOT EXISTS "postgis";
|
|
|
|
|
-- CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
2018-06-03 12:25:33 -05:00
|
|
|
CREATE EXTENSION IF NOT EXISTS "fuzzystrmatch";
|
2019-03-31 10:50:27 -05:00
|
|
|
|
2018-03-10 11:56:40 -06:00
|
|
|
DROP TYPE IF EXISTS QUANTITY CASCADE;
|
2018-02-10 11:49:54 -06:00
|
|
|
CREATE TYPE QUANTITY AS ENUM ('lots', 'many', 'few', 'none');
|
2019-03-31 10:50:27 -05:00
|
|
|
|
2018-03-10 11:56:40 -06:00
|
|
|
DROP TYPE IF EXISTS CATEGORY CASCADE;
|
2020-04-05 20:22:23 +00:00
|
|
|
CREATE TYPE CATEGORY AS ENUM (
|
|
|
|
|
'Baby & Kids',
|
|
|
|
|
'Baked Goods',
|
|
|
|
|
'Beverages',
|
|
|
|
|
'Cleaning',
|
|
|
|
|
'Dairy & Eggs',
|
|
|
|
|
'Frozen Food',
|
|
|
|
|
'Fruit & Vegetables',
|
|
|
|
|
'Health & Beauty',
|
|
|
|
|
'Home & Outdoor',
|
|
|
|
|
'Meat & Seafood',
|
|
|
|
|
'Pantry & Dry Goods',
|
|
|
|
|
'Pet Supplies',
|
|
|
|
|
'School & Office Supplies',
|
|
|
|
|
'Toiletries'
|
|
|
|
|
);
|
2019-03-31 10:50:27 -05:00
|
|
|
|
2020-05-31 15:43:26 -05:00
|
|
|
DROP TABLE IF EXISTS product CASCADE;
|
|
|
|
|
CREATE TABLE product (
|
|
|
|
|
id VARCHAR(100),
|
|
|
|
|
provider_type VARCHAR(50),
|
|
|
|
|
name VARCHAR(200),
|
|
|
|
|
photo VARCHAR(250),
|
|
|
|
|
PRIMARY KEY (id)
|
2017-10-14 22:04:44 -05:00
|
|
|
);
|
2019-03-31 10:50:27 -05:00
|
|
|
|
2020-05-31 15:43:26 -05:00
|
|
|
DROP TABLE IF EXISTS search_term CASCADE;
|
|
|
|
|
CREATE TABLE search_term (
|
|
|
|
|
term VARCHAR(200) PRIMARY KEY,
|
|
|
|
|
last_queried timestamp (1) with time zone
|
2018-03-10 11:56:40 -06:00
|
|
|
);
|
2019-03-31 10:50:27 -05:00
|
|
|
|
2020-05-31 15:43:26 -05:00
|
|
|
DROP TABLE IF EXISTS search_term_product CASCADE;
|
|
|
|
|
CREATE TABLE search_term_product (
|
|
|
|
|
term VARCHAR(200) REFERENCES search_term(term) ON DELETE CASCADE,
|
|
|
|
|
product_id VARCHAR(100) REFERENCES product(id) ON DELETE CASCADE
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS search_category CASCADE;
|
|
|
|
|
CREATE TABLE search_category (
|
|
|
|
|
product_id VARCHAR(100) REFERENCES product(id) ON DELETE CASCADE,
|
|
|
|
|
category CATEGORY
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS product_quantity CASCADE;
|
|
|
|
|
CREATE TABLE product_quantity (
|
|
|
|
|
product_id VARCHAR(100) REFERENCES product(id) ON DELETE CASCADE,
|
2017-10-14 22:04:44 -05:00
|
|
|
date timestamp (1) with time zone,
|
2020-03-29 14:36:37 -05:00
|
|
|
quantity QUANTITY NOT NULL,
|
2020-05-31 15:43:26 -05:00
|
|
|
PRIMARY KEY (product_id, date)
|
2017-10-14 22:04:44 -05:00
|
|
|
);
|
2019-03-31 10:50:27 -05:00
|
|
|
|
2020-03-29 14:36:37 -05:00
|
|
|
DROP TABLE IF EXISTS faves CASCADE;
|
|
|
|
|
CREATE TABLE faves (
|
2020-05-31 15:43:26 -05:00
|
|
|
product_id VARCHAR(100) REFERENCES product(id) ON DELETE CASCADE,
|
|
|
|
|
photo_url VARCHAR(300),
|
2020-03-29 14:36:37 -05:00
|
|
|
username VARCHAR(200) NOT NULL,
|
|
|
|
|
date timestamp (1) with time zone NOT NULL,
|
2020-05-31 15:43:26 -05:00
|
|
|
PRIMARY KEY (product_id)
|
2018-03-10 11:56:40 -06:00
|
|
|
);
|
2019-03-31 10:50:27 -05:00
|
|
|
|
2020-05-31 15:43:26 -05:00
|
|
|
CREATE VIEW latest_quantity AS
|
|
|
|
|
SELECT DISTINCT ON (product_id) product_id, quantity, date
|
|
|
|
|
FROM product_quantity
|
|
|
|
|
ORDER BY product_id, date DESC;
|