Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie o jedną prostą relację
Forum PHP.pl > Forum > Bazy danych > MySQL
felkowyLudzik
Witam

Mam tabele:

Kategorie,
Producenci,
Części

Jedna kategoria może zawierać wiele producentów, i ten sam producent może być w wielu kategoriach ( czyli wiele do wiele )? Potem Część ( od roweru ) jest uzależniona od kategorii i producenta czyli zawiera ona klucz obcy tabeli pośredniczącej, która zaś przechowuje klucz obcy z Kategorii i Producentów ?

Pozdro!
mar1aczi
Tabele:
Producenci, Kategorie, Producenci_kategorie, Czesci

- Producenci: id_producenta
- Kategorie: id_kategorii
- Producenci_kategorie: id_kategorii, id_producenta
- Czesci: id_kategorii, id_producenta

O to pytałeś?
felkowyLudzik
Tak, to jest Twój pomysł. Czy moje rozwiązanie jest złe? Moje rozwiązanie to:

- Producenci: id_producenta
- Kategorie: id_kategorii
- Producenci_kategorie: id_kategorii, id_producenta, id_producenci_kategorie(pk)
- Czesci: id_producenci_kategorie

Pozdrawiam
mar1aczi
Co w sytuacji, gdy będziesz chciał wyszukać części wg. kategorii lub wg. producenta przy Twoim rozwiązaniu? Jak to rozwiążesz?

Rodzi mi się jeszcze pytanie: czy jedna część będzie przynależeć tylko_i_wyłącznie do jednej kategorii?
felkowyLudzik
Nie mam jeszcze tego zaimplementowanego, ale złączyłbym tabele pośredniczącą i Części po id_producenci_kategorie where id_kategorii =(select * .. )

Ale nie wiem czy to zadziała bo jak napisałem nie mam tego formlanie napisanego jeszcze ;-)

Edit:

Tak jedna część jedna, kategoria ( inaczej jedna klasa części jedna kategoria ).

Np. Kategoria: Napęd rowerowy - i tutaj producenci - i różne części ( pedały, łańcuchy ).
mar1aczi
Jeśli stricte jedna część (jeden wiersz) będzie przypisana do tylko jednej kategorii i jednego producenta to i Twoje rozwiązanie powinno się sprawdzić. Problem pojawi się, gdy to ulegnie ewolucji smile.gif
felkowyLudzik
Twoje rowiązanie jest bezpieczniejsze?? Zawwsze uwazalem, ze polaczenia tabel nie powinny sie zamykac :-) To znaczy ze jak od jedna zaczne isc po kolejnych to gdzies musi byc przepasc, czyli brak polaczenia smile.gif

Cytat
Jeśli stricte jedna część (jeden wiersz) będzie przypisana do tylko jednej kategorii i jednego producenta to i Twoje rozwiązanie powinno się sprawdzić.


Tego nie rozumiem :-) Np. pedał rowerowy należy do kategorii Napęd_rowerowy, ale może mieć on wiele producentów :-) Czyli de facto jedna część może należeć do wielu producentów, ale tylko do jednej kategorii smile.gif
mar1aczi
Cytat(felkowyLudzik @ 29.03.2013, 08:09:36 ) *
Tego nie rozumiem :-) Np. pedał rowerowy należy do kategorii Napęd_rowerowy, ale może mieć on wiele producentów :-) Czyli de facto jedna część może należeć do wielu producentów, ale tylko do jednej kategorii smile.gif

Będzie to zależne od szczegółowości opisu części. Np. kod-producenta będzie inny dla każdego pedała, zatem w tabeli czesci będą to różne wiersze (poróżni je, w tym przykładzie, to jedno pole). Dodatkowo: czy jeden producent nie może produkować różnych wersji tych pedałów? smile.gif
felkowyLudzik
Dokładnie każdy pedał ma swój kod_producenta i tylko tek kod może mieć jednego producenta. Zatem moje rozwiązanie się sprawdzi?

Cytat
Dodatkowo: czy jeden producent nie może produkować różnych wersji tych pedałów?


Do czego nawiązujesz? Bo jednak inna wersja tegoż urządzenia to w ciąż pedał smile.gif
StrefaPi
Cytat(felkowyLudzik @ 29.03.2013, 08:09:36 ) *
Czyli de facto jedna część może należeć do wielu producentów, ale tylko do jednej kategorii :)

Dla mnie błąd w założeniu... Tutaj powinno zostać wiele wiele... bo jeżeli ów pedał będzie np. specjalny kolorowy czy z tytanu... To moim zdaniem powinien należeć do dwóch kategorii: "Napęd rowerowy" i "Tuning"...
felkowyLudzik
Cytat
Tutaj powinno zostać wiele wiele


Czyli Kategoria - części ( wiele do wiele ), i Producenci - Części ( jeden do wielu )questionmark.gif
StrefaPi
Ja bym wolał mieć właśnie tak...
felkowyLudzik
Bardzo logiczne i bezpieczne. Natomiast Kategorie - Producenci ( wiele do wiele ) zostaje nadal.
StrefaPi
Cytat(felkowyLudzik @ 29.03.2013, 08:33:15 ) *
Natomiast Kategorie - Producenci ( wiele do wiele ) zostaje nadal.

Tego to trochę nie rozumiem po co akurat ta relacja... ale moim zdaniem jeżeli chcesz to zostawić to tak wiele wiele...
felkowyLudzik
Żeby przyporządkować w jednej tabeli kategoriom ich producentów tongue.gif
StrefaPi
Nie jest to dublowanie danych? Nie wiem...
felkowyLudzik
Właśnie jest, dlatego z tego rezygnuje.
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.