| 7 | | == Историјат == |
| | 7 | === Ентитети === |
| | 8 | |
| | 9 | '''Јаки Ентитети:''' |
| | 10 | |
| | 11 | 1. '''User''' - ентитет кој ги дефинира корисниците |
| | 12 | * userId - primary key (примарен клуч) |
| | 13 | * username - varchar (задолжителен атрибут) |
| | 14 | * password - varchar (задолжителен атрибут) |
| | 15 | * full_name - varchar (задолжителен атрибут) |
| | 16 | * email - varchar (задолжителен атрибут) |
| | 17 | * role - varchar (задолжителен атрибут) |
| | 18 | * is_active - boolean (задолжителен атрибут) |
| | 19 | |
| | 20 | 2. '''Customer''' - ентитет кој ги дефинира клиентите |
| | 21 | * customerId - primary key (примарен клуч) |
| | 22 | * name - varchar (задолжителен атрибут) |
| | 23 | * email - varchar (задолжителен атрибут) |
| | 24 | * phone - varchar (задолжителен атрибут) |
| | 25 | * address - varchar (задолжителен атрибут) |
| | 26 | |
| | 27 | 3. '''Product''' - ентитет кој ги дефинира продуктите |
| | 28 | * productId - primary key (примарен клуч) |
| | 29 | * name - varchar (задолжителен атрибут) |
| | 30 | * description - text (задолжителен атрибут) |
| | 31 | * sku - varchar (задолжителен атрибут) |
| | 32 | * unit_price - decimal (задолжителен атрибут) |
| | 33 | * reorder_level - int (задолжителен атрибут) |
| | 34 | |
| | 35 | 4. '''Category''' - ентитет кој ги дефинира категориите на продукти |
| | 36 | * categoryId - primary key (примарен клуч) |
| | 37 | * name - varchar (задолжителен атрибут) |
| | 38 | * description - text (задолжителен атрибут) |
| | 39 | |
| | 40 | 5. '''Supplier''' - ентитет кој ги дефинира добавувачите |
| | 41 | * supplierId - primary key (примарен клуч) |
| | 42 | * name - varchar (задолжителен атрибут) |
| | 43 | * contact_person - varchar (задолжителен атрибут) |
| | 44 | * phone - varchar (задолжителен атрибут) |
| | 45 | * email - varchar (задолжителен атрибут) |
| | 46 | * address - varchar (задолжителен атрибут) |
| | 47 | |
| | 48 | 6. '''Warehouse''' - ентитет кој ги дефинира складиштата |
| | 49 | * warehouseId - primary key (примарен клуч) |
| | 50 | * name - varchar (задолжителен атрибут) |
| | 51 | * location - varchar (задолжителен атрибут) |
| | 52 | * capacity - int (задолжителен атрибут) |
| | 53 | |
| | 54 | 7. '''Sale''' - ентитет кој ги дефинира продажните |
| | 55 | * saleId - primary key (примарен клуч) |
| | 56 | * date_time - datetime (задолжителен атрибут) |
| | 57 | * total_amount - decimal (задолжителен атрибут) |
| | 58 | |
| | 59 | 8. '''!PurchaseOrder''' - ентитет кој ги дефинира нарачките кон добавувачи |
| | 60 | * poId - primary key (примарен клуч) |
| | 61 | * order_date - date (задолжителен атрибут) |
| | 62 | * expected_delivery_date - date (задолжителен атрибут) |
| | 63 | * status - varchar (задолжителен атрибут) |
| | 64 | |
| | 65 | '''Слаби Ентитети:''' |
| | 66 | |
| | 67 | 9. '''!SaleItem''' - ентитет кој ги дефинира ставките во продажба (зависи од Sale) |
| | 68 | * saleId - foreign key, дел од primary key (примарен клуч) |
| | 69 | * productId - foreign key, дел од primary key (примарен клуч) |
| | 70 | * quantity - int (задолжителен атрибут) |
| | 71 | * unit_price_at_sale - decimal (задолжителен атрибут) |
| | 72 | |
| | 73 | 10. '''!PurchaseOrderItem''' - ентитет кој ги дефинира ставките во нарачка (зависи од !PurchaseOrder) |
| | 74 | * poId - foreign key, дел од primary key (примарен клуч) |
| | 75 | * productId - foreign key, дел од primary key (примарен клуч) |
| | 76 | * quantity - int (задолжителен атрибут) |
| | 77 | * unit_cost - decimal (задолжителен атрибут) |
| | 78 | |
| | 79 | 11. '''!WarehouseStock''' - ентитет кој ги дефинира запасните продукти за секое складиште (зависи од Warehouse) |
| | 80 | * warehouseId - foreign key, дел од primary key (примарен клуч) |
| | 81 | * productId - дел од primary key (примарен клуч) |
| | 82 | * quantity_on_hand - int (задолжителен атрибут) |
| | 83 | * last_updated - datetime (задолжителен атрибут) |
| | 84 | |
| | 85 | === Релации === |
| | 86 | |
| | 87 | * '''belongs_to''' - 1:N релација која ги поврзува ентитетите Product и Category. Еден продукт може да припаѓа само на една категорија, а една категорија може да има повеќе продукти. |
| | 88 | |
| | 89 | * '''supplied_by''' - 1:N релација која ги поврзува ентитетите Product и Supplier. Еден продукт може да се добавува од еден добавувач, а еден добавувач може да добавува повеќе продукти. |
| | 90 | |
| | 91 | * '''holds''' - 1:N релација која ги поврзува ентитетите Warehouse и !WarehouseStock. Едно складиште може да има повеќе запасни ставки, а една запасна ставка припаѓа на едно складиште. |
| | 92 | |
| | 93 | * '''has_stock_in''' - 1:N релација која ги поврзува ентитетите Product и !WarehouseStock. Еден продукт може да има запас во повеќе складишта, а една запасна ставка е за еден продукт. |
| | 94 | |
| | 95 | * '''made_by''' - 1:N релација која ги поврзува ентитетите Sale и User. Една продажба е направена од еден корисник, а еден корисник може да направи повеќе продажби. |
| | 96 | |
| | 97 | * '''made_for''' - 1:N релација која ги поврзува ентитетите Sale и Customer. Една продажба е за еден клиент, а еден клиент може да има повеќе продажби. |
| | 98 | |
| | 99 | * '''contains''' - 1:N релација која ги поврзува ентитетите Sale и !SaleItem. Една продажба содржи повеќе ставки, а една ставка припаѓа на една продажба. |
| | 100 | |
| | 101 | * '''includes''' - 1:N релација која ги поврзува ентитетите !SaleItem и Product. Една ставка во продажба е за еден продукт, а еден продукт може да биде во повеќе ставки. |
| | 102 | |
| | 103 | * '''placed_to''' - 1:N релација која ги поврзува ентитетите !PurchaseOrder и Supplier. Една нарачка е кон еден добавувач, а еден добавувач може да прими повеќе нарачки. |
| | 104 | |
| | 105 | * '''includes''' - 1:N релација која ги поврзува ентитетите !PurchaseOrder и !PurchaseOrderItem. Една нарачка содржи повеќе ставки, а една ставка припаѓа на една нарачка. |
| | 106 | |
| | 107 | * '''orders''' - 1:N релација која ги поврзува ентитетите !PurchaseOrderItem и Product. Една ставка во нарачка е за еден продукт, а еден продукт може да биде во повеќе ставки. |