1.Idąc Twoim tokiem rozumowania, skoro tabela zawierająca wszystkie produkty nazywa się allproducts
, czy tabela z wszystkimi zamówieniami nie powinna się nazywać allorders
? A tabela z wszystkimi użytkownikami allusers
? (oczywiście nie - pokazuję jedynie niekonsekwencję w Twoim nazewnictwie.)
2.Twoja tabela products
dotyczy produktów tylko w zamówieniach, zatem powinna się nazywać order_product
i mieć pola order_id
, product_id
, product_price
(bo cena, po jakiej produkt został sprzedany, może być różna od tej, w jakiej jest obecnie) etc.
3.Tabela allproducts
powinna się po prostu nazywać product
i mieć kolumny product_id
, product_name
etc., bez żadnego idproducts
(w jakim celu ono istnieje?).
4.Tabela orders
powinna nazywać się order
i mieć kolumny order_id
, user_id
, order_grand_total
etc.
5.Tabela users
powinna nazywać się user
i mieć kolumny user_id
, user_name
, user_mail
etc.
6.Tabela payments
powinna nazywać się order_payment
i mieć kolumny payment_id
, order_id
, payment_value_cash
etc.
Oczywiście możesz woleć inny sposób nazewnictwa - ja prezentuję powyższy, ponieważ jest imho bardzo czytelny oraz wygodny:
1.Nazywanie tabel rzeczownikami w liczbie pojedynczej, przez co nie ma potem tabel nazwanych w stylu orders_products
, co mnie kłuje w oczy :-P
2.Wykorzystywanie pełnych nazw kolumn nie tylko dla kluczy podstawowych (czyli nie tylko np. user_id
, ale także user_name
, user_mail
), co sprawia, że zapytanie jest łatwiejsze do analizy.
3.Preferuję user_id
ponad iduser
, ponieważ w drugim przypadku wypadałoby także - trzymając się konwencji - utworzyć kolumny nameuser
, mailuser
, co wygląda na wymysł jakiegoś niedzielnego programisty.