| | 79 | Формава ги следи овие правила: |
| | 80 | - Веќе е во втора нормална форма |
| | 81 | - Се отргнуваат транзитивните функционални зависности, со тоа се овозможува сите атрибути кои не се клучеви да зависат само од примарниот клуч и од никој друг атрибут |
| | 82 | |
| | 83 | ==== 1 |
| | 84 | |
| | 85 | {user_id} → {user_name, email, password} |
| | 86 | |
| | 87 | ||= USER =||= =||= =||= =|| |
| | 88 | ||= //user_id =||= //user_name =||= //email =||= //password =|| |
| | 89 | || 1 || james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu || |
| | 90 | || 2 || anita || anita@fein.com || $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm || |
| | 91 | |
| | 92 | ==== 2 |
| | 93 | |
| | 94 | {transaction_account_id} → {account_name, balance, user_id} |
| | 95 | |
| | 96 | ||= TRANSACTION_ACCOUNT =||= =||= =||= =|| |
| | 97 | ||= //transaction_account_id =||= //account_name =||= //balance =||= //user_id =|| |
| | 98 | || 1 || credit card || +5000 || 1 || |
| | 99 | || 2 || cash || +1200 || 1 || |
| | 100 | || 3 || debit card || +3200 || 2 || |
| | 101 | |
| | 102 | ==== 3 |
| | 103 | |
| | 104 | {transaction_id} → {transaction_name, amount, net_amount, date} |
| | 105 | |
| | 106 | ||= TRANSACTION =||= =||= =||= =||= =|| |
| | 107 | ||= //transaction_id =||= //transaction_name =||= //amount =||= //net_amount =||= //date =|| |
| | 108 | || 1 || electricity bill || -1800 || -1800 || 18:03:25 Sep 26, 2025 || |
| | 109 | || 2 || burger || -800 || -200 || 12:43:00 Sep 26, 2025 || |
| | 110 | || 3 || nail polish || -200 || -200 || 19:31:32 Sep 12 2025 || |
| | 111 | |
| | 112 | ==== 4 |
| | 113 | |
| | 114 | {transaction_breakdown_id} → {transaction_id, transaction_account_id, spent_amount, earned_amount} |
| | 115 | |
| | 116 | ||= TRANSACTION_BREAKDOWN =||= =||= =||= =||= =|| |
| | 117 | ||= //transaction_breakdown_id =||= //transaction_id =||= //transaction_account_id =||= //spent_amount =||= //earned_amount =|| |
| | 118 | || 1 || 1 || 1 || -1800 || 0 || |
| | 119 | || 2 || 2 || 2 || -800 || +600 || |
| | 120 | || 3 || 3 || 3 || -200 || 0 || |
| | 121 | |
| | 122 | ==== 5 |
| | 123 | |
| | 124 | {tag_id} → {tag_name} |
| | 125 | |
| | 126 | ||= TAG =||= =|| |
| | 127 | ||= //tag_id =||= //tag_name =|| |
| | 128 | || 1 || bills || |
| | 129 | || 2 || food || |
| | 130 | || 3 || beauty || |
| | 131 | |
| | 132 | ==== 6 |
| | 133 | |
| | 134 | {transaction_id, tag_id} → {} |
| | 135 | |
| | 136 | ||= TAG_ASSIGNED_TO_TRANSACTION =||= =|| |
| | 137 | ||= //transaction_id =||= //tag_id =|| |
| | 138 | || 1 || 1 || |
| | 139 | || 2 || 2 || |
| | 140 | || 3 || 3 || |