Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tabele do zamówień od klientów, Pomoc w projektowaniu bazy danych
Damiian
post 6.02.2020, 16:40:38
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 4
Dołączył: 30.05.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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!

Ten post edytował Damiian 6.02.2020, 16:55:23


--------------------
Jeśli pomogłem, daj: Pomógł.
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 16:58:13
Post #2





Grupa: Moderatorzy
Postów: 35 112
Pomógł: 5877
Dołączył: 27.12.2004




A zabawa w magazyn tez ci jest potrzebna?


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Damiian
post 6.02.2020, 17:01:51
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 4
Dołączył: 30.05.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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


--------------------
Jeśli pomogłem, daj: Pomógł.
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 17:06:08
Post #4





Grupa: Moderatorzy
Postów: 35 112
Pomógł: 5877
Dołączył: 27.12.2004




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?


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
vokiel
post 7.02.2020, 10:13:06
Post #5





Grupa: Zarejestrowani
Postów: 2 470
Pomógł: 416
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


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".


--------------------
Go to the top of the page
+Quote Post
nospor
post 7.02.2020, 10:18:42
Post #6





Grupa: Moderatorzy
Postów: 35 112
Pomógł: 5877
Dołączył: 27.12.2004




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


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Damiian
post 7.02.2020, 17:05:48
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 4
Dołączył: 30.05.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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


--------------------
Jeśli pomogłem, daj: Pomógł.
Go to the top of the page
+Quote Post
nospor
post 7.02.2020, 17:39:20
Post #8





Grupa: Moderatorzy
Postów: 35 112
Pomógł: 5877
Dołączył: 27.12.2004




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


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Damiian
post 11.02.2020, 14:59:25
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 4
Dołączył: 30.05.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


  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ź?


--------------------
Jeśli pomogłem, daj: Pomógł.
Go to the top of the page
+Quote Post
nospor
post 11.02.2020, 15:04:47
Post #10





Grupa: Moderatorzy
Postów: 35 112
Pomógł: 5877
Dołączył: 27.12.2004




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


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Damiian
post 11.02.2020, 15:06:20
Post #11





Grupa: Zarejestrowani
Postów: 38
Pomógł: 4
Dołączył: 30.05.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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


--------------------
Jeśli pomogłem, daj: Pomógł.
Go to the top of the page
+Quote Post
nospor
post 11.02.2020, 15:08:42
Post #12





Grupa: Moderatorzy
Postów: 35 112
Pomógł: 5877
Dołączył: 27.12.2004




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


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
javafxdev
post 11.02.2020, 22:28:27
Post #13





Grupa: Zarejestrowani
Postów: 81
Pomógł: 6
Dołączył: 27.10.2015

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post 12.02.2020, 10:24:56
Post #14





Grupa: Moderatorzy
Postów: 35 112
Pomógł: 5877
Dołączył: 27.12.2004




@javafxdev chyba ci sie pomylily tematy wink.gif


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.02.2020 - 23:00