| Version 2 (modified by , 11 days ago) ( diff ) |
|---|
ЕР Дијаграм
Податочни побарувања
Ентитети
ADMIN
- user_id int, примарен клуч DEFAULT 1
- CONSTRAINT fk_admin_user
FOREIGN KEY (user_id) REFERENCES api_user(user_id) ON UPDATE CASCADE ON DELETE SET DEFAULT
ALLERGEN
- allergen_id serial, примарен клуч
- allergen_name string, задолжителен и уникатен
- allergen_description string
API_USER
- user_id serial, примарен клуч
- user_first_name string, задолжителен
- user_last_name string, задолжителен
- user_email string, задолжителен и уникатен
- user_phone_no string, уникатен
- user_password_hash TEXT, задолжителен
CATEGORY
- cat_id serial, примарен клуч
- cat_name string, задолжителен и уникатен
- cat_description string
COMPANY
- company_id serial, примарен клуч
- company_name string, задолжителен и уникатен
- company_address string, задолжителен
COMPANY_ORDER
- comp_order_id serial, примарен клуч
- company_id int, задолжителен
- delivery_id int, уникатен
- CONSTRAINT fk_company_order_company
FOREIGN KEY (company_id) REFERENCES company(company_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT fk_company_order_delivery
FOREIGN KEY (delivery_id) REFERENCES delivery(delivery_id) ON UPDATE CASCADE ON DELETE SET NULL
CONTRACT
- contract_id serial, примарен клуч
- company_id int, задолжителен
- rest_id int, задолжителен
- contract_status_id int, задолжителен
- contract_start_date date, задолжителен
- contract_end_date date, задолжителен
- CONSTRAINT fk_contract_company
FOREIGN KEY (company_id) REFERENCES company(company_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT fk_contract_restaurant
FOREIGN KEY (rest_id) REFERENCES restaurant(rest_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT fk_contract_status
FOREIGN KEY (contract_status_id) REFERENCES contract_status(contract_status_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT chk_contract_dates CHECK (contract_end_date >= contract_start_date)
CONTRACT_STATUS
- contract_status_id serial, примарен клуч
- contract_status_name string, задолжителен и уникатен
CUSTOMER
- user_id int PRIMARY KEY DEFAULT 1
- CONSTRAINT fk_customer_user
FOREIGN KEY (user_id) REFERENCES api_user(user_id) ON UPDATE CASCADE ON DELETE SET DEFAULT
CUSTOMER_ORDER
- order_id serial, примарен клуч
- comp_order_id int, задолжителен
- company_employee_user_id int, задолжителен DEFAULT 1
- order_datetime timestamp, задолжителен DEFAULT CURRENT_TIMESTAMP
- o_status_id int, задолжителен
- order_total NUMERIC(10,2), задолжителен
- CONSTRAINT fk_customer_order_company_order
FOREIGN KEY (comp_order_id) REFERENCES company_order(comp_order_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT fk_customer_order_employee
FOREIGN KEY (company_employee_user_id) REFERENCES company_employee(user_id) ON UPDATE CASCADE ON DELETE SET DEFAULT
- CONSTRAINT fk_customer_order_status
FOREIGN KEY (o_status_id) REFERENCES order_status(o_status_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT chk_order_total CHECK (order_total >= 0)
DELIVERY
- delivery_id serial, примарен клуч
- delivery_date DATE, задолжителен DEFAULT CURRENT_DATE
- delivery_notes string
- d_status_id int, задолжителен
- driver_user_id int, задолжителен DEFAULT 1
- CONSTRAINT fk_delivery_status
FOREIGN KEY (d_status_id) REFERENCES delivery_status(d_status_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT fk_delivery_driver
FOREIGN KEY (driver_user_id) REFERENCES driver(user_id) ON UPDATE CASCADE ON DELETE SET DEFAULT
DELIVERY_REVIEW
- delivery_review_id serial, примарен клуч
- delivery_id int, задолжителен и уникатен
- del_review_courier_rating int, задолжителен
- del_review_speed_rating int, задолжителен
- CONSTRAINT fk_delivery_review_delivery
FOREIGN KEY (delivery_id) REFERENCES delivery(delivery_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT chk_delivery_review_courier_rating CHECK (del_review_courier_rating BETWEEN 1 AND 5)
- CONSTRAINT chk_delivery_review_speed_rating CHECK (del_review_speed_rating BETWEEN 1 AND 5)
DELIVERY_STATUS
- d_status_id serial, примарен клуч
- d_status_name string, задолжителен и уникатен
DRINK
- drink_id serial, примарен клуч
- rest_id int, задолжителен
- drink_name string, задолжителен
- drink_milliliters int, задолжителен
- drink_price NUMERIC(10,2), задолжителен
- CONSTRAINT fk_drink_restaurant
FOREIGN KEY (rest_id) REFERENCES restaurant(rest_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT chk_drink_milliliters CHECK (drink_milliliters > 0)
- CONSTRAINT chk_drink_price CHECK (drink_price >= 0)
- CONSTRAINT uq_drink_restaurant_name UNIQUE (rest_id, drink_name)
DRIVER
- user_id int PRIMARY KEY DEFAULT 1
- CONSTRAINT fk_driver_user
FOREIGN KEY (user_id) REFERENCES api_user(user_id) ON UPDATE CASCADE ON DELETE SET DEFAULT
EMPLOYEE_LOYALTY
- emp_loyalty_id serial, примарен клуч
- user_id int, задолжителен и уникатен
- emp_loyalty_curr_points int, задолжителен DEFAULT 0
- emp_loyalty_joined_at timestamp, задолжителен DEFAULT CURRENT_TIMESTAMP
- emp_loyalty_status_id int, задолжителен
- tier_id int, задолжителен
- CONSTRAINT fk_employee_loyalty_user
FOREIGN KEY (user_id) REFERENCES company_employee(user_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT fk_employee_loyalty_status
FOREIGN KEY (emp_loyalty_status_id) REFERENCES employee_loyalty_status(emp_loyalty_status_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT fk_employee_loyalty_tier
FOREIGN KEY (tier_id) REFERENCES loyalty_tier(tier_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT chk_employee_loyalty_points CHECK (emp_loyalty_curr_points >= 0)
EMPLOYEE_LOYALTY_STATUS
- emp_loyalty_status_id serial, примарен клуч
- emp_loyalty_status_name string, задолжителен и уникатен
INGREDIENT
- ingr_id serial, примарен клуч
- ingr_name string, задолжителен и уникатен
LOYALTY_TIER
- tier_id serial, примарен клуч
- tier_name string, задолжителен и уникатен
- tier_minimum_points int, задолжителен
- tier_maximum_points int, задолжителен
- tier_discount_percentage NUMERIC(5,2), задолжителен
- tier_free_delivery_eligibility bool, задолжителен DEFAULT FALSE
- tier_priority_support bool, задолжителен DEFAULT FALSE
- tier_created_at DATE, задолжителен DEFAULT CURRENT_DATE
- tier_update_at timestamp, задолжителен DEFAULT CURRENT_TIMESTAMP
- CONSTRAINT chk_tier_points_nonnegative CHECK (tier_minimum_points >= 0 AND tier_maximum_points >= 0)
- CONSTRAINT chk_tier_points_range CHECK (tier_maximum_points >= tier_minimum_points)
- CONSTRAINT chk_tier_discount CHECK (tier_discount_percentage >= 0 AND tier_discount_percentage <= 100)
LUNCH_TIME
- lunch_time_id serial, примарен клуч
- comp_order_id int
- contract_id int, задолжителен
- lunch_start timestamp, задолжителен
- lunch_end timestamp, задолжителен
- lunch_preorder_offset int, задолжителен DEFAULT 0
- lunch_weekday string, задолжителен
- CONSTRAINT fk_lunch_time_company_order
FOREIGN KEY (comp_order_id) REFERENCES company_order(comp_order_id) ON UPDATE CASCADE ON DELETE SET NULL
- CONSTRAINT fk_lunch_time_contract
FOREIGN KEY (contract_id) REFERENCES contract(contract_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT chk_lunch_time_offset CHECK (lunch_preorder_offset >= 0)
- CONSTRAINT chk_lunch_weekday CHECK (
lunch_weekday IN ('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday')
)
- CONSTRAINT chk_lunch_interval CHECK (lunch_end > lunch_start)
MEAL
- meal_id serial, примарен клуч
- cat_id int, задолжителен
- rest_id int, задолжителен
- meal_name string, задолжителен
- meal_description string
- meal_price NUMERIC(10,2), задолжителен
- meal_weight int, задолжителен
- CONSTRAINT fk_meal_category
FOREIGN KEY (cat_id) REFERENCES category(cat_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT fk_meal_restaurant
FOREIGN KEY (rest_id) REFERENCES restaurant(rest_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT chk_meal_price CHECK (meal_price >= 0)
- CONSTRAINT chk_meal_weight CHECK (meal_weight > 0)
- CONSTRAINT uq_meal_restaurant_name UNIQUE (rest_id, meal_name)
ORDER_REVIEW
- order_review_id serial, примарен клуч
- order_id int, задолжителен и уникатен
- order_review_food_rating int, задолжителен
- order_review_res_rating int, задолжителен
- CONSTRAINT fk_order_review_order
FOREIGN KEY (order_id) REFERENCES customer_order(order_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT chk_order_review_food_rating CHECK (order_review_food_rating BETWEEN 1 AND 5)
- CONSTRAINT chk_order_review_res_rating CHECK (order_review_res_rating BETWEEN 1 AND 5)
ORDER_STATUS
- o_status_id serial, примарен клуч
- o_status_name string, задолжителен и уникатен
RESTAURANT
- rest_id serial, примарен клуч
- rest_name string, задолжителен
- rest_email string, задолжителен и уникатен
- rest_location string, задолжителен
- rest_phone string, задолжителен и уникатен
- rest_website string, уникатен
REVIEW
- review_id serial, примарен клуч
- review_comment string
- review_created_at timestamp, задолжителен DEFAULT CURRENT_TIMESTAMP
- review_rating int, задолжителен
- CONSTRAINT chk_review_rating CHECK (review_rating BETWEEN 1 AND 5)
Релациски табели
Order_Meal
- order_id int, задолжителен
- meal_id int, задолжителен
- quantity int, задолжителен DEFAULT 1
- PRIMARY KEY (order_id, meal_id), примарен клуч
- CONSTRAINT fk_order_meal_order
FOREIGN KEY (order_id) REFERENCES customer_order(order_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT fk_order_meal_meal
FOREIGN KEY (meal_id) REFERENCES meal(meal_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT chk_order_meal_quantity CHECK (quantity > 0)
Order_Drink
- order_id int, задолжителен
- drink_id int, задолжителен
- quantity int, задолжителен DEFAULT 1
- PRIMARY KEY (order_id, drink_id), примарен клуч
- CONSTRAINT fk_order_drink_order
FOREIGN KEY (order_id) REFERENCES customer_order(order_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT fk_order_drink_drink
FOREIGN KEY (drink_id) REFERENCES drink(drink_id) ON UPDATE CASCADE ON DELETE RESTRICT
- CONSTRAINT chk_order_drink_quantity CHECK (quantity > 0)
Meal_Ingredient
- meal_id int, задолжителен
- ingr_id int, задолжителен
- PRIMARY KEY (meal_id, ingr_id), примарен клуч
- CONSTRAINT fk_meal_ingredient_meal
FOREIGN KEY (meal_id) REFERENCES meal(meal_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT fk_meal_ingredient_ingredient
FOREIGN KEY (ingr_id) REFERENCES ingredient(ingr_id) ON UPDATE CASCADE ON DELETE CASCADE
Allergen_Ingredient
- allergen_id int, задолжителен
- ingr_id int, задолжителен
- PRIMARY KEY (allergen_id, ingr_id), примарен клуч
- CONSTRAINT fk_allergen_ingredient_allergen
FOREIGN KEY (allergen_id) REFERENCES allergen(allergen_id) ON UPDATE CASCADE ON DELETE CASCADE
- CONSTRAINT fk_allergen_ingredient_ingredient
FOREIGN KEY (ingr_id) REFERENCES ingredient(ingr_id) ON UPDATE CASCADE ON DELETE CASCADE
Attachments (2)
- kbnteam_ERDiagram.jpg (309.5 KB ) - added by 10 days ago.
- kbnteam_ERDiagram_ver2.jpg (309.5 KB ) - added by 10 days ago.
Download all attachments as: .zip

