Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Tabele do zamówień od klientów

Napisany przez: Damiian 6.02.2020, 16:40:38

Witam serdecznie.

Od paru dni planuje napisać sobie prostą stronkę, którą będzie na localhoscie do obsługi zamówień od klientów.
Zamysł w php jest taki:
Pole Data
Pole klient (rozwijana lista z klientami z bazy danych)
Towar ( jakaś rozwijana lista w możliwością multiwyboru)
Ważnym czynnikiem jest też to, że dany klient może np zamówić dwie sztuki danego towaru, nie koniecznie jedną. jak to rozgryźć?

Produktów jest około 80, a klientów około 130.
Zamówienia są robione dwa, trzy razy w tygodniu.

Każdy klient zamawia średnio 50 produktów co zamówienie.

Jak poprawnie zbudować taką (takie?) tabele oraz jak powinny wyglądać kolumny / wiersze w każdej z nich aby było to optymalne przyszłościowo?
Abym w przyszłości mógł robić też zestawienie, co kto zamówił w danym miesiącu / dniu , jaka ilość i abym mógł to wydrukować np smile.gif

Pozdrawiam!

Napisany przez: nospor 6.02.2020, 16:58:13

A zabawa w magazyn tez ci jest potrzebna?

Napisany przez: Damiian 6.02.2020, 17:01:51

Na ten moment nie, chce dodawac tylko zamówienia do bazy, abym mógł generować zestawienia, ewentualnie jakieś WZ smile.gif

Napisany przez: nospor 6.02.2020, 17:06:08

Klient pola:
id
imie
nazwisko
I takie tam bzdety

Towar pola:
id
nazwa
i takie tam bazdety

Zamowienie pola:
id
id_klient
id_towar
ilosc
data

pola id_klient i id_towar zrob jako klucze obce.

Cos pominalem?

Napisany przez: vokiel 7.02.2020, 10:13:06

Cytat(nospor @ 6.02.2020, 17:06:08 ) *
Cos pominalem?


Takie rozwiązanie jest dobre o ile jest to projekt akademicki lub nie jest związany z wystawianiem dokumentów księgowych.

Jeśli wystawiamy FV na podstawie tych zamówień, to kopiowanie danych produktów/klientów jest niestety konieczne. Relacje są fajne, szybkie i wygodne ale niestety nie są odporne na zmiany.

Przykładowo klient 1 kupuje produkt 2 i 3, z tego zamówienia wystawiamy FV. W przypadku użycia relacji po zmianie danych klienta lub produktu faktura też ulegnie zmianie - a na takie coś US mówi "będzie mandacik".

Napisany przez: nospor 7.02.2020, 10:18:42

@vokiel tak, ale autor wyraznie zaznaczyl, ze tutaj nie bedzie zadnych faktur itp. Ot baza na jego lokalne potrzeby

Napisany przez: Damiian 7.02.2020, 17:05:48

Cześć, dzień dobry smile.gif

Serdecznie dziękuje za odpowiedzi smile.gif Zgadza się, faktury wystawiam w zupełnie innym programie, tutaj głównie chodzi mi o to, aby trzymać zamówienia i móc z tego bezpośrednio drukować np Wz lub popatrzeć co kto i ile w danym miesiącu zamówił smile.gif

Jutro nad tym usiądę i zobaczymy co mi z tego wyjdzie smile.gif

Cytat
pola id_klient i id_towar zrob jako klucze obce.


  1. CONSTRAINT kluczyk
  2. FOREIGN KEY `id_klient`
  3. REFERENCES `Zamówienia`(`id_towar`)


O to chodziło?

Pozdrawiam smile.gif

Napisany przez: nospor 7.02.2020, 17:39:20

Tak, o to chodzilo.
Tylko ta nazwa "kluczyk" miej litosc i nadaj jakas sensowna
No i ustaw co ma sie dziac czy ma pozwalac na DELETE czy nie itp

Napisany przez: Damiian 11.02.2020, 14:59:25

  1. CREATE TABLE `testing`.`zamowienie` (
  2. `ID` INT NOT NULL AUTO_INCREMENT ,
  3. `id_klient` INT NOT NULL ,
  4. `id_towar` INT NOT NULL ,
  5. `ilosc` INT NOT NULL ,
  6. `data` DATE NOT NULL ,
  7. PRIMARY KEY (`ID`),
  8. CONSTRAINT FK_idklient_idtowar
  9. FOREIGN KEY(id_klient) REFERENCES zamowienie(id_towar))
  10. ENGINE = InnoDB;


#1005 - Nie można stworzyć tabeli `testing`.`zamowienie` (Kod błędu: 150 "Foreign key constraint is incorrectly formed")

Jakaś podpowiedź?

Napisany przez: nospor 11.02.2020, 15:04:47

Czemu kluczem obcym laczysz klienta i towar? Klucz obcy sluzy do laczenia klienta z klientem, ino ze w roznych tabelach

Napisany przez: Damiian 11.02.2020, 15:06:20

To już kompletnie się pogubiłem smile.gif

Napisany przez: nospor 11.02.2020, 15:08:42

Klucz obcy: ID jakiegos rekordu, jest w innej tabeli

Masz tabele KLIENT i pole ID
Masz tabele ZAMOWIENIE i pole ID_KLIENT, ktore wskazuje na pole ID z tabeli klient - to jest wlasnie klucz obcy.

Identycznie z towarem. Masz tabele TOWAR i pole ID
Masz tabele ZAMOWIENIE i pole ID_TOWAR, ktore wskazuje na pole ID z tabeli towar - to jest wlasnie klucz obcy.

Czyli w tabeli ZAMOWIENIE, masz miec dwa klucze obce

Napisany przez: javafxdev 11.02.2020, 22:28:27

Zrób sobie coś takiego jak: http://vps772782.ovh.net:8080/
Dlaczego? bo będziesz miał wszystko na jednej stronie - będziesz mógł obsługiwać klientów jedną ręką w drugiej trzymając telefon, jak masz 80 produktów to zmieścisz to na jednej stronie - zaznaczysz wiele produktów na raz, po tygodniu używania na pamięć będziesz znał gdzie który produkt leży i będziesz to robił szybko i wydajnie

Napisany przez: nospor 12.02.2020, 10:24:56

@javafxdev chyba ci sie pomylily tematy wink.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)