| | 1 | = DDL = |
| | 2 | |
| | 3 | == 1. Вовед == |
| | 4 | |
| | 5 | DDL-от беше генериран од страна на Visual Paradigm, испробан локално и дополнет со constraints. Потоа, направивме pg_dump и го импортиравме на нашата remote база за предметот. |
| | 6 | |
| | 7 | == 2. Дел од кодот == |
| | 8 | |
| | 9 | CREATE TABLE user_app ( |
| | 10 | user_id bigint NOT NULL, |
| | 11 | username character varying(20) NOT NULL, |
| | 12 | email character varying(50) NOT NULL, |
| | 13 | contact_phone character varying(50), |
| | 14 | CONSTRAINT chk_email_format CHECK (((email)::text ~~ '%@%.%'::text)) |
| | 15 | ); |
| | 16 | |
| | 17 | CREATE TABLE order_cart ( |
| | 18 | user_id bigint NOT NULL, |
| | 19 | discount_id integer, |
| | 20 | status_id integer NOT NULL, |
| | 21 | order_id bigint NOT NULL, |
| | 22 | created_at timestamp without time zone NOT NULL, |
| | 23 | total_price numeric(12,2) NOT NULL, |
| | 24 | CONSTRAINT chk_order_total CHECK ((total_price >= (0)::numeric)) |
| | 25 | ); |
| | 26 | |
| | 27 | CREATE TABLE attribute ( |
| | 28 | name text NOT NULL, |
| | 29 | attribute_id integer NOT NULL, |
| | 30 | data_type character varying(20) NOT NULL, |
| | 31 | description text, |
| | 32 | is_required boolean NOT NULL |
| | 33 | ); |
| | 34 | |
| | 35 | CREATE TABLE payment ( |
| | 36 | order_id bigint NOT NULL, |
| | 37 | method_id integer NOT NULL, |
| | 38 | payment_id integer NOT NULL, |
| | 39 | amount_paid numeric(12,2), |
| | 40 | processed_at timestamp without time zone NOT NULL, |
| | 41 | transaction_id character varying(255) NOT NULL, |
| | 42 | is_refunded boolean, |
| | 43 | CONSTRAINT chk_payment_amount CHECK ((amount_paid >= (0)::numeric)) |
| | 44 | ); |
| | 45 | |
| | 46 | ALTER TABLE ONLY waitlist_entry |
| | 47 | ADD CONSTRAINT fk_waitlist_user FOREIGN KEY (user_id) REFERENCES public.user_app(user_id) ON UPDATE CASCADE ON DELETE CASCADE; |
| | 48 | |
| | 49 | ALTER TABLE ONLY ticket |
| | 50 | ADD CONSTRAINT fk_ticket_seat FOREIGN KEY (seat_id) REFERENCES public.seat(seat_id) ON UPDATE CASCADE ON DELETE SET NULL; |
| | 51 | |
| | 52 | ALTER TABLE ONLY payment_method |
| | 53 | ADD CONSTRAINT payment_method_method_name_key UNIQUE (method_name); |
| | 54 | |
| | 55 | == 3. Резултат == |
| | 56 | Моментално имаме табели со точни типови на атрибути и со сите потребни (за сега) ограничувања. |