= ER Model = == ЕР Дијаграм == [[Image(ER_MODEL_V1.jpg)]] == Податочни побарувања == '''Ентититети''' // 1. PRODUCT_CATEGORY - Ентитет за категорија на продукт a. id serial, b. category_name varchar c. constraint pk_cid primary key(id) // 2. PRODUCT - Ентитет за продукт кој го продава аптеката a. id serial b. sku varchar c. name varchar d. description varchar e. unit_price decimal f. image_url varchar g. units_in_stock integer h. date_created timestamp i. last_updated timestamp j. category_id integer k. constraint pk_id primary key(id) l. constraint fk_cid foreign key(category_id) references product_category(id) // 3. CUSTOMER - Ентитет за купувач кој направил нарачка во системот a. id serial b. first_name varchar c. last_name varchar d. email varchar unique e. constraint pk_customer primary key(id) // 4. ADDRESS - Ентитет за адреса на корисникот (Shipping или Billing address) a. id serial b. city varchar c. country varchar d. street varchar e. zip_code varchar f. constraint pk_address primary_key(id) (Нарачката има информации за Shipping и Billing address на Customer кој ја направил нарачката ) // 5. ORDERS - Ентитет за нарачката која е направена во системот a. id bigserial b. order_tracking_number varchar c. total_price decimal d. total_quantity int e. customer_id int f. last_updated timestamp g. billing_address_id int unique h. shipping_address unique i. constraint pk_orders primary key(id) j. constraint fk_billing_add foreign key(billing_address_id) references address(id) k. constraint fk_shipping_add foreign key(shipping_address_id) references address(id) // 6. ORDERED_ITEM - Ентитет за нарачан производ кој е дел од нарачката (ОRDERS) a. id serial b. quantity int c. order_id bigserial d. product_id int e. constraint pk_order_item primary key(id) f. constraint fk_order_id foreign key(order_id) references orders(id) g. constraint fk_product_id foreign key(product_id) references product(id) (референцира кон табелата со сите продукти PRODUCTS) // Следните два ентитети се ентитети за Држава и Град кои служат за популирање на полиња во апликацијата на front-end. // 7. COUNTRY - Eнтитет за држави до кои може да се изведе достава a. id serial b. code varchar c. name varchar d. constraint pk_country primary_key(id) // 8. CITY - Ентитет за градови до кои може да се изведе достава a. id serial b. name varchar c. country_id int d. constraint pk_city primary key(id), e. constraint fk_country foreign key(country_id) references country(id) // ''' Релации ''' // 1. ORDER – ORDERED_ITEM (Релација CONTAINS) * Релација која покажува од кои нарачани продукти се состои нарачката (id на продуктите). Една нарачка содржи многу нарачани производи. Користи доколку на пример, нарачката содржи 3 парчиња од истиот продукт со id=1 да покаже квантитет=3 за парчето продукт со id=1. // 2. ORDERED_ITEM – PRODUCT (Релација ORDERED_ITEM_PRODUCT) * Релација која покажува детални информации за нарачаниот продукт од ORDER. Доколку сакаме да откриеме детали за продуктот кој е нарачан освен неговото id тогаш референцираме кон табелата PRODUCT за да ги излистаме неговите преостанати атрибути. // 3. PRODUCT – PRODUCT_CATEGORY (Релација BELONGS_TO) * Релација која покажува кој продукт на која категорија припаѓа. Една категорија може да содржи многу продукти. Еден продукт припаѓа на една категорија. // 4. CUSTOMER – ORDER (Релација MAKES) * Релација која покажува кој купувач која нарачка ја направил. Еден купувач може да направи многу нарачки. Нарачката е направена од еден купувач. // 5. ORDER – ADDRESS (Релација HAS_SHIPPING_ADDRESS) * Нарачката содржи една адреса за испорака // 6. ORDER – ADDRESS (Релација HAS_BILLING_ADDRESS) * Нарачката содржи една адреса поврзана со методот на плаќање // 7. CITY – COUNTRY ( Релација BELONGS_TO) * Релацијата покажува кој град се наоѓа во која држава.