= Users {{{USERS(id, name, email, password, is_admin)}}} {{{id → name, email, password, is_admin}}} - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. = Clients {{{CLIENTS(id, name, country, registration_number, tax_code, contact_person, phone_number, billing_address, shipping_address)}}} {{{id → name, country, registration_number, tax_code, contact_person, phone_number, billing_address, shipping_address}}} - **1NF**: Табелата {{{CLIENTS}}} е во **1NF** затоа што сите атрибути содржат атомски вредности и нема дупликат вредности. Адресата за наплата и испорака, и сите други атрибути се одвоени и не се повторуваат. - **2NF**: Табелата е во **2NF** затоа што сите атрибути зависат целосно од примарниот клуч {{{id}}}. Не постојат делумни релации, бидејќи сите атрибути се однесуваат на целиот ентитет (клиент). - **BCNF**: Табелата е во **BCNF** затоа што секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. Нема не-клучни атрибути кои зависат од друг не-клучен атрибут. Во новата база на податоци, табелата {{{CLIENTS}}} ги заменува старите табели {{{BUYER}}} и {{{RECEIVER}}}. Оваа промена беше направена за да се поедностави структурата на базата и да се избегне двојна евиденција за истите ентитети. Наместо две посебни табели (една за купувачи и друга за примачи), сега и купувачите и примачите се чуваат во една табела, што е поефикасно и попрактично за управување со податоците. {{{BUYER}}} и {{{RECEIVER}}} беа две различни табели, со различни атрибути за секој ентитет. Секој купувач имаше своја табела за информации поврзани со купувањето, а секој примач имаше посебна табела за податоците за испорака. {{{CLIENTS}}} сега ја обединува оваа функционалност, бидејќи и купувачот и примачот може да бидат идентификувани како клиенти. Табелата {{{CLIENTS}}} вклучува целокупната информација за компаниите кои учествуваат во процесот на продажба и испорака, вклучувајќи и {{{billing_address}}} и {{{shipping_address}}}, кои се претходно разликувани помеѓу купувачот и примачот. = Transports {{{PRODUCERS(id, name, address, country, phone_number, email)}}} {{{id → name, address, country, phone_number, email}}} - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Нема делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. = Producers {{{PRODUCTS(id, name, description, hs_code, price, producer_id* (PRODUCERS), unit_of_measure)}}} {{{id → name, description, hs_code, price, producer_id, unit_of_measure}}} - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Нема делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи нема транзитивни релации и сите атрибути зависат целосно од примарниот клуч. = Products {{{BATCHES(id, product_id* (PRODUCTS), batch_code, production_date, expiration_date, net_weight, gross_weight, units_per_batch)}}} {{{id → product_id, batch_code, production_date, expiration_date, net_weight, gross_weight, units_per_batch}}} - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{producer_id}}} не создава делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации. = Batches {{{ORDERS(id, date, status, estimated_delivery_date, buyer_id* (CLIENTS), receiver_id* (CLIENTS), transport_id* (TRANSPORTS), payment_id* (PAYMENTS))}}} {{{id → date, status, estimated_delivery_date, buyer_id, receiver_id, transport_id, payment_id}}} - **1NF**: Табелата {{{BATCHES}}} е во **1NF** бидејќи секое поле содржи атомски вредности. Нема дупликат вредности или структурни комплификации. Секој ред претставува една серија и не постојат атрибути кои содржат повеќе од една вредност. - **2NF**: Табелата {{{BATCHES}}} е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч {{{id}}}. Странскиот клуч {{{product_id}}} не создава делумни релации. Секој атрибут во табелата е директно поврзан со целокупниот идентитет на серијата, кој е идентификуван преку примарниот клуч. - **BCNF**: Табелата {{{BATCHES}}} е во **BCNF** затоа што нема транзитивни релации. Сите атрибути зависат целосно од примарниот клуч {{{id}}} и нема релации каде не-клучни атрибути зависат од други не-клучни атрибути. Во новата база на податоци, табелата {{{BATCHES}}} е додадена како нова структура која ги претставува сериите. Оваа табела е важна за управување со производите во контекст на сериите, нивните рокови на траење и друга релевантна продукциска информација. = Orders {{{ORDER_BATCHES(id, order_id* (ORDERS), batch_id* (BATCHES), quantity, price_per_unit, total_price, created_at, updated_at)}}} {{{id → order_id, batch_id, quantity, price_per_unit, total_price, created_at, updated_at}}} - **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Foreign keys ({{{buyer_id}}}, {{{receiver_id}}}, {{{transport_id}}}, {{{payment_id}}}) не создаваат делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. = Order Batches {{{INVOICES(id, invoice_date, status, total_amount, order_id* (ORDERS))}}} {{{id → invoice_date, status, total_amount, order_id}}} - **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч составен од {{{order_id}}} и {{{batch_id}}}. - **BCNF**: Табелата е во **BCNF** бидејќи нема транзитивни релации и сите релации се од примарните клучеви. Табелата {{{ORDER_BATCHES}}} е нов додаток во базата кој овозможува детален и прецизен запис на сериите кои се дел од некоја нарачка. Ова ја заменува претходната едноставна табела {{{ORDER_PRODUCT}}} и го подобрува групирањето на производите. = Invoices {{{PACKING_LISTS(id, order_id* (ORDERS), packing_list_date, status)}}} {{{id → order_id, packing_list_date, status}}} - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации. = Packing Lists {{{PAYMENTS(id, order_id* (ORDERS), amount, currency, due_date, exchange_rate, payment_date, payment_method, payment_status)}}} {{{id → order_id, amount, currency, due_date, exchange_rate, payment_date, payment_method, payment_status}}} - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи нема транзитивни релации и сите атрибути зависат целосно од примарниот клуч. Табелата {{{PACKING_LISTS}}} е нова структура во базата која има за цел да го подобри управувањето со логистиката на нарачките. Се користи за следење и управување со податоците кои се поврзани со пакувањето на производите во нарачките. = Payments {{{TRANSPORTS(id, name, departure_point, arrival_point, estimated_departure_date, estimated_arrival_date, incoterm, insurance_conditions)}}} {{{id → name, departure_point, arrival_point, estimated_departure_date, estimated_arrival_date, incoterm, insurance_conditions}}} - **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности. - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации. - **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации.