Changes between Version 5 and Version 6 of Normalization


Ignore:
Timestamp:
09/29/25 19:10:54 (2 weeks ago)
Author:
211561
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v5 v6  
    11= Users
     2
     3{{{USERS(id, name, email, password, is_admin)}}}
     4
     5{{{id → name, email, password, is_admin}}}
    26
    37- **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности.
     
    711= Clients
    812
     13{{{CLIENTS(id, name, country, registration_number, tax_code, contact_person, phone_number, billing_address, shipping_address)}}}
     14
     15{{{id → name, country, registration_number, tax_code, contact_person, phone_number, billing_address, shipping_address}}}
     16
     17- **1NF**: Табелата {{{CLIENTS}}} е во **1NF** затоа што сите атрибути содржат атомски вредности и нема дупликат вредности. Адресата за наплата и испорака, и сите други атрибути се одвоени и не се повторуваат.
     18- **2NF**: Табелата е во **2NF** затоа што сите атрибути зависат целосно од примарниот клуч {{{id}}}. Не постојат делумни релации, бидејќи сите атрибути се однесуваат на целиот ентитет (клиент).
     19- **BCNF**: Табелата е во **BCNF** затоа што секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. Нема не-клучни атрибути кои зависат од друг не-клучен атрибут.
     20
    921Во новата база на податоци, табелата {{{CLIENTS}}} ги заменува старите табели {{{BUYER}}} и {{{RECEIVER}}}. Оваа промена беше направена за да се поедностави структурата на базата и да се избегне двојна евиденција за истите ентитети. Наместо две посебни табели (една за купувачи и друга за примачи), сега и купувачите и примачите се чуваат во една табела, што е поефикасно и попрактично за управување со податоците.
    1022
     
    1325{{{CLIENTS}}} сега ја обединува оваа функционалност, бидејќи и купувачот и примачот може да бидат идентификувани како клиенти. Табелата {{{CLIENTS}}} вклучува целокупната информација за компаниите кои учествуваат во процесот на продажба и испорака, вклучувајќи и {{{billing_address}}} и {{{shipping_address}}}, кои се претходно разликувани помеѓу купувачот и примачот.
    1426
    15 - **1NF**: Табелата {{{CLIENTS}}} е во **1NF** затоа што сите атрибути содржат атомски вредности и нема дупликат вредности. Адресата за наплата и испорака, и сите други атрибути се одвоени и не се повторуваат.
    16 - **2NF**: Табелата е во **2NF** затоа што сите атрибути зависат целосно од примарниот клуч {{{id}}}. Не постојат делумни релации, бидејќи сите атрибути се однесуваат на целиот ентитет (клиент).
    17 - **BCNF**: Табелата е во **BCNF** затоа што секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. Нема не-клучни атрибути кои зависат од друг не-клучен атрибут.
     27= Transports
    1828
    19 = Transports
     29{{{PRODUCERS(id, name, address, country, phone_number, email)}}}
     30
     31{{{id → name, address, country, phone_number, email}}}
    2032
    2133- **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности.
     
    2537= Producers
    2638
     39{{{PRODUCTS(id, name, description, hs_code, price, producer_id* (PRODUCERS), unit_of_measure)}}}
     40
     41{{{id → name, description, hs_code, price, producer_id, unit_of_measure}}}
     42
    2743- **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности.
    2844- **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Нема делумни релации.
     
    3147= Products
    3248
     49{{{BATCHES(id, product_id* (PRODUCTS), batch_code, production_date, expiration_date, net_weight, gross_weight, units_per_batch)}}}
     50
     51{{{id → product_id, batch_code, production_date, expiration_date, net_weight, gross_weight, units_per_batch}}}
     52
    3353- **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности.
    34 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешен клуч {{{producer_id}}} не создава делумни релации.
     54- **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{producer_id}}} не создава делумни релации.
    3555- **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации.
    3656
    3757= Batches
    3858
     59{{{ORDERS(id, date, status, estimated_delivery_date, buyer_id* (CLIENTS), receiver_id* (CLIENTS), transport_id* (TRANSPORTS), payment_id* (PAYMENTS))}}}
     60
     61{{{id → date, status, estimated_delivery_date, buyer_id, receiver_id, transport_id, payment_id}}}
     62
     63- **1NF**: Табелата {{{BATCHES}}} е во **1NF** бидејќи секое поле содржи атомски вредности. Нема дупликат вредности или структурни комплификации. Секој ред претставува една серија и не постојат атрибути кои содржат повеќе од една вредност.
     64- **2NF**: Табелата {{{BATCHES}}} е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч {{{id}}}. Странскиот клуч {{{product_id}}} не создава делумни релации. Секој атрибут во табелата е директно поврзан со целокупниот идентитет на серијата, кој е идентификуван преку примарниот клуч.
     65- **BCNF**: Табелата {{{BATCHES}}} е во **BCNF** затоа што нема транзитивни релации. Сите атрибути зависат целосно од примарниот клуч {{{id}}} и нема релации каде не-клучни атрибути зависат од други не-клучни атрибути.
     66
    3967Во новата база на податоци, табелата {{{BATCHES}}} е додадена како нова структура која ги претставува сериите. Оваа табела е важна за управување со производите во контекст на сериите, нивните рокови на траење и друга релевантна продукциска информација.
    4068
    41 - **1NF**: Табелата {{{BATCHES}}} е во **1NF** бидејќи секое поле содржи атомски вредности. Нема дупликат вредности или структурни комплификации. Секој ред претставува една серија и не постојат атрибути кои содржат повеќе од една вредност.
    42 - **2NF**: Табелата {{{BATCHES}}} е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч {{{id}}}. Надворешен клуч {{{product_id}}} не создава делумни релации. Секој атрибут во табелата е директно поврзан со целокупниот идентитет на серијата, кој е идентификуван преку примарниот клуч.
    43 - **BCNF**: Табелата {{{BATCHES}}} е во **BCNF** затоа што нема транзитивни релации. Сите атрибути зависат целосно од примарниот клуч {{{id}}} и нема релации каде не-клучни атрибути зависат од други не-клучни атрибути.
     69= Orders
    4470
    45 = Orders
     71{{{ORDER_BATCHES(id, order_id* (ORDERS), batch_id* (BATCHES), quantity, price_per_unit, total_price, created_at, updated_at)}}}
     72
     73{{{id → order_id, batch_id, quantity, price_per_unit, total_price, created_at, updated_at}}}
    4674
    4775- **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности.
     
    5179= Order Batches
    5280
    53 Табелата {{{ORDER_BATCHES}}} е нов додаток во базата кој овозможува детален и прецизен запис на сериите кои се дел од некоја нарачка. Ова ја заменува претходната едноставна табела {{{ORDER_PRODUCT}}} и го подобрува групирањето на производите.
     81{{{INVOICES(id, invoice_date, status, total_amount, order_id* (ORDERS))}}}
    5482
    55 Од бизнис аспект, имавме потреба да го воведеме ова како пивот табела, бидејќи реално, се извезуваат серија од продукти, наместо само продукти.
     83{{{id → invoice_date, status, total_amount, order_id}}}
    5684
    5785- **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности.
     
    5987- **BCNF**: Табелата е во **BCNF** бидејќи нема транзитивни релации и сите релации се од примарните клучеви.
    6088
     89Табелата {{{ORDER_BATCHES}}} е нов додаток во базата кој овозможува детален и прецизен запис на сериите кои се дел од некоја нарачка. Ова ја заменува претходната едноставна табела {{{ORDER_PRODUCT}}} и го подобрува групирањето на производите.
     90
    6191= Invoices
    6292
     93{{{PACKING_LISTS(id, order_id* (ORDERS), packing_list_date, status)}}}
     94
     95{{{id → order_id, packing_list_date, status}}}
     96
    6397- **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности.
    64 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешен клуч {{{order_id}}} не создава делумни релации.
     98- **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации.
    6599- **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации.
    66100
    67101= Packing Lists
    68102
    69 Табелата {{{PACKING_LISTS}}} е нова структура во базата која има за цел да го подобри управувањето со логистиката на нарачките. Се користи за следење и управување со податоците кои се поврзани со пакувањето на производите во нарачките.
     103{{{PAYMENTS(id, order_id* (ORDERS), amount, currency, due_date, exchange_rate, payment_date, payment_method, payment_status)}}}
    70104
    71 Заедно со фактурата, packing list е важен документ кој се бара при царинење на роба.
     105{{{id → order_id, amount, currency, due_date, exchange_rate, payment_date, payment_method, payment_status}}}
    72106
    73107- **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности.
    74 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешен клуч {{{order_id}}} не создава делумни релации.
     108- **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации.
    75109- **BCNF**: Табелата е во **BCNF** бидејќи нема транзитивни релации и сите атрибути зависат целосно од примарниот клуч.
     110
     111Табелата {{{PACKING_LISTS}}} е нова структура во базата која има за цел да го подобри управувањето со логистиката на нарачките. Се користи за следење и управување со податоците кои се поврзани со пакувањето на производите во нарачките.
    76112
    77113= Payments
    78114
     115{{{TRANSPORTS(id, name, departure_point, arrival_point, estimated_departure_date, estimated_arrival_date, incoterm, insurance_conditions)}}}
     116
     117{{{id → name, departure_point, arrival_point, estimated_departure_date, estimated_arrival_date, incoterm, insurance_conditions}}}
     118
    79119- **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности.
    80 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешен клуч {{{order_id}}} не создава делумни релации.
     120- **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации.
    81121- **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации.