wheezy123
#mysql #php #webdev #programowanie #pytanie

Tabele w relacji wiele do wielu. Jest to tylko przykład, podaję taki, bo łatwiej mi będzie zrozumieć. Kilka osób może mieć kilka przedmiotów- wiadomo. Pytanie brzmi, jak najefektywniej mam dokonywać selekcji danych w takich przypadkach i jak je obsłużyć do wyświetlania na stronie? Np. zbiór osób posiadających daną rzecz, czy zbiór rzeczy, które posiada dana osoba. Proszę o łatwe do zakumania wytłumaczenie :)

Osoba :

osobaid

imie

Osoba
Rzecz:

osobaid

rzecz
id

Rzecz:

rzeczid

nazwa
rzeczy
1
  • Najlepsze
  • Wszystkie komentarze
a.....n
a.....n
@wheezy123: drobna uwaga, to raczej trzymaj się osoba_id lub osobaid, a nie na zmianę :>

Resztę powiedział @weedget
3
plushy
@wheezy123: Zasady są zawsze takie same:

*Indeksuj

*Nie wybieraj zbędnych pól

*Nie używaj MySQLa
3
Harold
@wheezy123: JOINY znasz?
1
weedget
@wheezy123: generalnie to odpowiedź na Twoje oba pytania jest w tabeli OsobaRzecz. Jeśli wybierzesz z niej wiersz(e) po polu osobaid to będziesz miał zbiór rzeczy posiadanych przez daną osobę, jeśli wybierzesz z niej wiersz(e) po polu rzecz_id to będziesz miał zbiór osób posiadających tę rzecz...

A taką rzecz jak połączenie po kluczu obcym to chyba umiesz zrobić? :>
1
weedget
@wheezy123: przez chwilę kusiło mnie aby pojechać elektrodą, ale niech stracę... ;)

SELECT r.nazwarzeczy FROM OsobaRzecz or LEFT JOIN Rzecz r USING(rzeczid) WHERE or.rzeczid=

jak nie rozumiesz czegoś w tym zapisie to chyba jednak podstawy SQL się kłaniają...
1
weedget
@wheezy123: fakt mój błąd ;)

wyciąganie rzeczy mając id osoby:

SELECT r.nazwarzeczy FROM OsobaRzecz or LEFT JOIN Rzecz r USING(rzeczid) WHERE or.osobaid=

w drugą stronę analogicznie
1
wheezy123
@aseeon: Rozkojarzenie :)

@weedget: Nie do końca, mógłbyś mnie oświecić? :) Przypuśćmy, że id osoby lub id przedmiotu mam już w zmiennej.
0
wheezy123
@weedget: Chodziło mi o wyciąganie imion, posiadając idrzeczy lub wyciąganie nazw rzeczy, posiadając idosoby... Fakt, jestem zielony i nie widzę, jak Twoje zapytanie ma się do tego?
0
wheezy123
@weedget: Dzięki za pomoc :D
0