| Version 5 (modified by , 10 days ago) ( diff ) |
|---|
Нормализација
Денормализирана форма
Форма во кој има една табела во која се внесени сите ентитети и нивни релации помеѓу себе, без никакви правила
| user_id | user_name | password | transaction_account_id | account_name | balance | transaction_id | transaction_name | amount | net_amount | date | transaction_breakdown_id | spent_amount | earned_amount | tag_id | tag_name | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | james | james@… | $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu | 1, 2 | credit card, cash | 5000, 1200 | 1, 2 | electricity bill, burger | -1800, -800 | -1800, -200 | 18:03:25 Sep 26, 2025, 12:43:00 Sep 26, 2025 | 1,2 | -1800, -800 | 0, 600 | 1, 2 | bills, food |
| 2 | anita | anita@… | $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm | 1 | debit card | 3200 | 1 | nail polish | -200 | -200 | 19:31:32 Sep 12 2025 | 1 | -200 | 0 | 1 | beauty |
Прва нормална форма
Форма во која повторно има една табела, но овојпат, таа е ограничена со следниве работи:
- Подредувањето на редовите не претставува никакво значење
- Во ќелиите на секоја колона има по една вредност
- Не се мешаат типови на податоци во една ќелија
- Табелата има примарен композитен клуч(user_id, transaction_id, transaction_account_id, transaction_breakdown_id)
- Нема повторувачки групи, сите што биле во денормализираната форма сега се во посебен ред
| user_id | user_name | password | transaction_account_id | account_name | balance | transaction_id | transaction_name | amount | net_amount | date | transaction_breakdown_id | spent_amount | earned_amount | tag_id | tag_name | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | james | james@… | $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu | 1 | credit card | 5000 | 1 | electricity bill | -1800 | -1800 | 18:03:25 Sep 26, 2025 | 1 | -1800 | 0 | 1 | bills |
| 1 | james | james@… | $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu | 2 | cash | 1200 | 2 | burger | -800 | -200 | 12:43:00 Sep 26, 2025 | 2 | -800 | 600 | 2 | food |
| 2 | anita | anita@… | $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm | 3 | debit card | 3200 | 3 | nail polish | -200 | -200 | 19:31:32 Sep 12 2025 | 3 | -200 | 0 | 3 | beauty |
Втора нормална форма
Форма која го следи ова правило:
- Секој од атрибутите кој не е клуч, зависи од целосниот примарен клуч - со тоа се спречуваат аномалии на внесување, бришење и менување
1
{ user_id } → {user_name, email, password}
| USER | |||
|---|---|---|---|
| user_id | user_name | password | |
| 1 | james | james@… | $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu |
| 2 | anita | anita@… | $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm |
2
{transaction_account_id} → {account_name, balance, user_id}
{transaction_account_id} → {user_id} → {user_name, email}
| TRANSACTION_ACCOUNT_WITH_USER_DATA | |||||
|---|---|---|---|---|---|
| transaction_account_id | account_name | balance | user_id | user_name | |
| 1 | credit card | 5000 | 1 | james | james@… |
| 2 | cash | 1200 | 1 | james | james@… |
| 3 | debit card | 3200 | 2 | anita | anita@… |
3
{transaction_id} → {transaction_name, amount, net_amount, date, tag_id}
{transaction_id} → {tag_id} → {tag_name}
| TRANSACTION_WITH_TAG_NAME | ||||||
|---|---|---|---|---|---|---|
| transaction_id | transaction_name | amount | net_amount | date | tag_id | tag_name |
| 1 | electricity bill | -1800 | -1800 | 18:03:25 Sep 26, 2025 | 1 | bills |
| 2 | burger | -800 | -200 | 12:43:00 Sep 26, 2025 | 2 | food |
| 3 | nail polish | -200 | -200 | 19:31:32 Sep 12 2025 | 3 | beauty |
4
{transaction_breakdown_id} → {transaction_id, transaction_account_id, spent_amount, earned_amount}
| TRANSACTION_BREAKDOWN | ||||
|---|---|---|---|---|
| transaction_breakdown_id | transaction_id | transaction_account_id | spent_amount | earned_amount |
| 1 | 1 | 1 | -1800 | 0 |
| 2 | 2 | 2 | -800 | 600 |
| 3 | 3 | 3 | -200 | 0 |
