wiki:ERModel

Version 2 (modified by 201178, 2 weeks ago) ( diff )

--

ER дијаграм

Податочни побарувања

Ентитети

1. Role - ентитет за улогата на корисникот во системот

  • role_id - SERIAL (примарен клуч)
  • role_name - VARCHAR(50) (атрибут)
  • description - TEXT (атрибут)
  1. App User - ентитет за корисникот кој се логира во системот
    • user_id - SERIAL (примарен клуч)
    • role_id - INT (надворешен клуч)
    • username - VARCHAR(50) (атрибут)
    • password_hash - TEXT (атрибут)
    • first_name - VARCHAR(50) (атрибут)
    • last_name - VARCHAR(50) (атрибут)
    • email - VARCHAR(100) (атрибут)
    • active - BOOLEAN (атрибут)

3. Session - ентитет за активна сесија на корисникот (токен)

  • token - UUID (примарен клуч)
  • user_id - INT (надворешен клуч)
  • created_at - TIMESTAMP (атрибут)
  • expires_at - TIMESTAMP (атрибут)

4. Audit Log - ентитет за дневник на активности

  • log_id - SERIAL (примарен клуч)
  • user_id - INT (надворешен клуч)
  • action - TEXT (атрибут)
  • entity_name - VARCHAR(50) (атрибут)
  • created_at - TIMESTAMP (атрибут)

5. Category - ентитет за категорија на производи

  • category_id - SERIAL (примарен клуч)
  • name - VARCHAR(100) (атрибут)
  • description - TEXT (атрибут)
  • active - BOOLEAN (атрибут)

6. Product - ентитет за производ од менито

  • product_id - SERIAL (примарен клуч)
  • category_id - INT (надворешен клуч)
  • name - VARCHAR(100) (атрибут)
  • description - TEXT (атрибут)
  • price - NUMERIC (атрибут)
  • active - BOOLEAN (атрибут)
  • min_stock - INT (атрибут)

7. Ingredient - ентитет за состојка која се користи во рецептите

  • ingredient_id - SERIAL (примарен клуч)
  • name - VARCHAR(200) (атрибут)
  • unit - VARCHAR(20) (атрибут)
  • min_stock - NUMERIC (атрибут)
  • active - BOOLEAN (атрибут)

8. Inventory - ентитет за движење на залихи на готови производи

  • inventory_id - SERIAL (примарен клуч)
  • product_id - INT (надворешен клуч)
  • quantity_change - INT (атрибут)
  • operation_type - VARCHAR(30) (атрибут)
  • created_at - TIMESTAMPTZ (атрибут)

9. Ingredient Inventory - ентитет за движење на залихи на состојки

  • id - SERIAL (примарен клуч)
  • ingredient_id - INT (надворешен клуч)
  • quantity_change - NUMERIC (атрибут)
  • operation_type - VARCHAR(40) (атрибут)
  • created_at - TIMESTAMP (атрибут)

10. Recipe - ентитет за рецепт на производ

  • recipe_id - SERIAL (примарен клуч)
  • product_id - INT (надворешен клуч, UNIQUE)

11. Recipe Item - слаб ентитет за поединечна состојка во рецепт

  • recipe_id - INT (примарен клуч, дел од композитен)
  • ingredient_id - INT (примарен клуч, дел од композитен, надворешен клуч)
  • quantity_needed - NUMERIC (атрибут)

12. Restaurant Table - ентитет за маса во ресторанот

  • table_id - SERIAL (примарен клуч)
  • table_number - VARCHAR(20) (атрибут)
  • capacity - INT (атрибут)
  • status - VARCHAR(20) (атрибут)

13. Orders - ентитет за нарачка

  • order_id - SERIAL (примарен клуч)
  • user_id - INT (надворешен клуч)
  • table_id - INT (надворешен клуч)
  • created_at - TIMESTAMPTZ (атрибут)
  • status - VARCHAR(20) (атрибут)

14. Order Item - слаб ентитет за ставка во нарачка

  • order_id - INT (примарен клуч, дел од композитен)
  • item_number - INT (примарен клуч, дел од композитен)
  • product_id - INT (надворешен клуч)
  • quantity - INT (атрибут)
  • unit_price - NUMERIC (атрибут)
  • status - VARCHAR(20) (атрибут)

15. Payment - ентитет за плаќање

  • payment_id - SERIAL (примарен клуч)
  • order_id - INT (надворешен клуч, UNIQUE)
  • amount - NUMERIC (атрибут)
  • method - VARCHAR(20) (атрибут)
  • payment_date - TIMESTAMPTZ (атрибут)

16. Invoice - ентитет за фактура

  • invoice_id - SERIAL (примарен клуч)
  • payment_id - INT (надворешен клуч, UNIQUE)
  • invoice_number - VARCHAR(50) (атрибут)
  • issued_at - TIMESTAMPTZ (атрибут)

17. Shift - ентитет за работна смена

  • shift_id - SERIAL (примарен клуч)
  • user_id - INT (надворешен клуч)
  • start_time - TIMESTAMP (атрибут)
  • end_time - TIMESTAMP (атрибут)

18. Shift Close - ентитет за затворање на смена

  • shift_id - SERIAL (примарен клуч)
  • closed_at - TIMESTAMP (атрибут)
  • closed_by - INT (надворешен клуч)
  • total - NUMERIC (атрибут)
  • order_count - INT (атрибут)

19. App Settings - ентитет за поставки на апликацијата

  • id - INT (примарен клуч)
  • restaurant_name - VARCHAR(100) (атрибут)
  • vat_rate - NUMERIC (атрибут)
  • currency - VARCHAR(10) (атрибут)
  • printer_config - VARCHAR(255) (атрибут)

20. Settings - ентитет за поставки на системот

  • id - INT (примарен клуч)
  • restaurant_name - VARCHAR(200) (атрибут)
  • vat_percent - NUMERIC (атрибут)
  • currency - VARCHAR(10) (атрибут)
  • printer_ip - VARCHAR(64) (атрибут)
  • printer_port - INT (атрибут)

Релации

  • HAS_ROLE - 1:N еден корисник има една улога, една улога може да биде доделена на повеќе корисници
  • HAS_SESSION - 1:N еден корисник може да има повеќе сесии
  • PERFORMS - 1:N еден корисник може да изврши повеќе активности во дневникот
  • WORKS - 1:N еден корисник може да работи повеќе смени
  • CLOSES - 1:N еден корисник може да затвори повеќе смени
  • HAS_CATEGORY - 1:N една категорија содржи повеќе производи
  • HAS_INVENTORY - 1:N еден производ може да има повеќе движења на залиха
  • HAS_INGREDIENT_INVENTORY - 1:N една состојка може да има повеќе движења на залиха
  • HAS_RECIPE - 1:1 еден производ има најмногу еден рецепт
  • USES - 1:N еден рецепт содржи повеќе состојки
  • CONTAINS_INGREDIENT - 1:N една состојка може да биде дел од повеќе рецепти
  • RECEIVES - 1:N една маса може да прими повеќе нарачки
  • CREATES - 1:N еден корисник може да креира повеќе нарачки
  • CONTAINS - 1:N една нарачка содржи повеќе ставки
  • INCLUDES - 1:N еден производ може да биде дел од повеќе ставки
  • HAS_PAYMENT - 1:1 една нарачка има едно плаќање
  • HAS_INVOICE - 1:1 едно плаќање има една фактура
  • CLOSES_SHIFT - 1:1 една смена има едно затворање

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.