Version 6 (modified by 2 weeks ago) ( diff ) | ,
---|
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 бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации.