ER дијаграм
Податочни побарувања
Ентитети
1. Role - ентитет за улогата на корисникот во системот
- role_id - SERIAL (примарен клуч)
- role_name - VARCHAR(50) (атрибут)
- description - TEXT (атрибут)
- 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)
- ERModel_v01.png (142.6 KB ) - added by 6 days ago.
Download all attachments as: .zip

