Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jaki schemat relacji
Forum PHP.pl > Forum > Bazy danych
cinnek
Witam
mam taki problem
Chcę aby w mojej bazie znalazły się zamówienia np.

Zamówienie 002/04 z 02.01.2004
Zamawiający - Jan Kowalski
deska 2 szt cena 20zł za sztukę
krzesło 3 szt cena 100zł za sztukę
itd.

Problem polega na tym że dla działu produkcji każda deska lub krzesło mają niepowtarzalny numer i stanowią jeden przedmiot do wykonania.Czyli po otrzymaniu takiego zamówienia dział produkcji ma zobaczyc cos takiego.

NR nazwaPrzouktu
001 deska
002 deska
003 krzeslo
004 krzeslo
005 krzeslo
itd.

Krótko mówiąc ktoś zamawia wiecej niz jedna sztukę a umnie kazda sztuka musi mieć swój numer.

Mam pytanko jak rozwiązalibyście coś takiego chodzi mi o to jak powinny wyglądać relacje:

Z góry dzięki za odpowiedzi
spenalzo
Proponuje taką strukturę:

a) tabela 'klienci'
Kod
+----+------+----------+

| ID | Imie | nazwisko |

+----+------+----------+

|321 | Jan  | Kowalski |

+----+------+----------+


cool.gif tabela 'produkty'
Kod
+----+----------------+

| ID | Nazwa_produktu |

+----+----------------+

|  1 | deska          |

|  2 | deska          |

|  3 | krzeslo        |

|  4 | krzeslo        |

|  5 | krzeslo        |

|  6 | deska          |

|  7 | deska          |

+----+----------------+


c) tabela 'relacje'
Kod
+--------+---------+

| Klient | Produkt |

+--------+---------+

|    321 |       1 |

|    321 |       6 |

|    321 |       4 |

|    321 |       3 |

|     65 |       2 |

|     65 |       7 |

+--------+---------+


W tabeli 'relacje' przechowujesz powiązania pomiędzy klientami a produktami.
Po naszemu - zapisujesz do tej tabeli ID klienta z ID produktu, każdy produkt jako osobny rekord.
Spójrz na przykład powyżej i widzisz, że Kowalski (ID 321) kupił 4 produkty.

Przykładowe zapytanie do wyciągniecia produktów pana Kowalskiego:
[sql:1:5b64aee6af]SELECT p.nazwa_produktu, p.ID FROM produkty p, relacje r, klienci k WHERE k.nazwisko='Kowalski' AND k.ID=r.klient AND r.produkt=p.ID[/sql:1:5b64aee6af]
cinnek
A czy mogłoby to byc coś takiego??

Tabela(Produkty)
[P_id | Nazwa ]

Tabela (klienci)
[ID_Klienta | Imie | Nazwisko]

Tabela (Zamówiena)
[NR_zamówienia | Data | ID_klienta]

Tabela (relacje)
[NR_zamówienia | P_id | nr_produkcyjny]

Czyli np. gdy kowalski kupi 3 deski (P_id deski to np 23) to tabela relacje bedzie wyglądała tak(załóżmy że to zamówienie nr 001):

[001 | 23 | 1]
[001 | 23 | 2]
[001 | 23 | 3]
spenalzo
Cytat
Czyli np. gdy kowalski kupi 3 deski (P_id deski to np 23) to tabela relacje bedzie wyglądała tak(załóżmy że to zamówienie nr 001):

[001 | 23 | 1]
[001 | 23 | 2]
[001 | 23 | 3]

Zaraz zaraz - przedtem pisąłeś że każdy produkt jest unikalny - więc skąd nagle 3x takie samo ID 23 questionmark.gif
uboottd
cinnek: owszem ta struktura wyglada na rozsadniejsza.

spenalzo: bo to jest ten sam produkt, tylko z roznymi "numerami seryjnymi"
cinnek
Cytat
Zaraz zaraz - przedtem pisąłeś że każdy produkt jest unikalny - więc skąd nagle 3x takie samo ID 23 questionmark.gif


Jest dokładnie tak jak powiedział uboottd. Wymyśliłem takastrukturę bo ja najpierw dostaje zamówienie a potem produkt jest dopiero produkowany więc unikatowe numery seryjne są przyznawane pózniej(tzn podczas tworzenia zamówienia) czyli nie znam ich przed złożeniem zamówienia produkty bo nie są jeszcze wyprodukowane ani w produkcji.


Jak ktos ma jeszcze jakieś może pomysły to poproszę z góry dzięki
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-2025 Invision Power Services, Inc.