Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tabele do zamówień od klientów
Forum PHP.pl > Forum > Bazy danych > MySQL
Damiian
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!
nospor
A zabawa w magazyn tez ci jest potrzebna?
Damiian
Na ten moment nie, chce dodawac tylko zamówienia do bazy, abym mógł generować zestawienia, ewentualnie jakieś WZ smile.gif
nospor
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?
vokiel
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".
nospor
@vokiel tak, ale autor wyraznie zaznaczyl, ze tutaj nie bedzie zadnych faktur itp. Ot baza na jego lokalne potrzeby
Damiian
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
nospor
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
Damiian
  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ź?
nospor
Czemu kluczem obcym laczysz klienta i towar? Klucz obcy sluzy do laczenia klienta z klientem, ino ze w roznych tabelach
Damiian
To już kompletnie się pogubiłem smile.gif
nospor
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
javafxdev
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
nospor
@javafxdev chyba ci sie pomylily tematy wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.