Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: lista kontaktów - jak ma wygladać baza?
Forum PHP.pl > Forum > Bazy danych > MySQL
japolak
hej..

rozbudowuje sobie moja stronke

i tak przy okazji robienia czegoś innego.. cos nie daje mi przy okazji spokoju.. wink.gif

a mianowicie.. kolejnym etapem rozwoju mojego serwisu ma być możliwość dodawania sobie kontaktów (coś na kształt nk, facebooka czy goldenline)

założenia w sumie te same
czyli : użytkownik a moze miec w znajomych użytkownika c,d,e - i automatycznie tym samym użytkownicy c, d, e maja uzytkownika a w swoich znajmomych..
no i oczywiscie sposób dodawania znajomych ten sam.. czyli wysyłamy zapytanie czy ktos chce byc kogos znajomym.. jesli tamten zaakceptuje to sie dodaje ze jest jego znajomym..


prosze o sugestje jak ma wygladac do takiego czegoś baza..

wygladalo by na to ze pasowało by tu wprowadzic jakas relacje wiele do wielu..
ale nie wiem jak by to mialo wygladac?

moze cos takiego?
id_użyt
id_uzyt
przyjeciel? int (1 tak)

Fifi209
Dobrze Ci się wydaje. smile.gif Pomysł jest jak najbardziej dobry, tylko nie zapomnij o założeniu indeksów później na te pola (mam na myśli przyspieszenie selectów)
japolak
hmm no ok
ale jak by mialo teraz wygladac zapisywanie danych w tej bazie ..
i w związku z tym jak szukać szukac odpowiedzi:

czy zapisywać dane w ten sposób

id_uzyt / id_uzyt_b / przyjaciel
a / b / 1
a /c / 1
a / d / 1
c / d/ 1

questionmark.gif

czy jeszcze odpowiednio dodawać
c / a / 1
d / a / 1

ale ta część to cos mi sie wydaje mija sie z celem..

ok.. wiec jesli wziąć pod uwage 1 rozwązanie to jak sprawdzić jakich przyjaciół ma "c" ?
  1.  
  2. $sql="select * from kontakty where id_uzyt= 'c' or id_uzyt_b = 'c'" questionmark.gif
- to jest poprawne zapytanie ( w sensie rozumowania) questionmark.gif
Fifi209
Jakbyś chciał zapisywać dwa razy to samo - będziesz miał bałagan w bazie, dodatkowe niepotrzebne dane. ;]
japolak
Cytat(Fifi209 @ 22.06.2011, 09:21:59 ) *
Jakbyś chciał zapisywać dwa razy to samo - będziesz miał bałagan w bazie, dodatkowe niepotrzebne dane. ;]


no to sie tak śmiesznie nazywa : " redundalne dane" tongue.gif

no spoko .. czyli wychodzi na to ze koncepcja jest dość prosta
budujemy sobie tabelke id_uzyt_1 , id_uzyt_2, przyjeciel
jak wysyłamy zapytanie do przyjaciela to zapisuje sie do bazy stan a , b , 0 ; jak przyjaciel zaakceptuje to 0 zamienia sie na 1. i gitara gra..

Hmm myślałem ze to będzie bardzie skomplikowany temat:P
Fifi209
Napisz sobie najlepiej funkcję lub procedurę w MySQL, dodającą znajomych, tak aby zanim wykona inserta np.
a,b,1
Sprawdził czy istnieje
b,a,1
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.