Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [doctrine] sub obiekt z tabeli (rel_id, key, value)
Forum PHP.pl > Forum > Gotowe rozwiązania > Skrypty obsługi baz danych
mdx
Czy istnieje w doctrine obsługa tabel w odwróconym wymiarze?
Mam tabelę:

Kod
User:
    tableName: users
    columns:
        id:             { type: integer, unsigned: true, primary: true, autoincrement: true }
        login:          { type: string(20) }

UserProfile:
    tableName: users_profiles
    columns:
        user_id:    { type: integer, unsigned: true, primary: true }
        key:       { type: string(50) }
        value:      { type: string(255) }


zapełnioną danymi:
Kod
User:
    user_1:
        login: user1
        
UserProfile:
    user_1_profile_1:
        key: email
        value: xxx@xxx.pl
    user_1_profile_2:
        key: birthday
        value: 2000-12-02


i chcę się odwołać do emaila przez:
  1. $userTable = Doctrine::getTable('User');
  2. $user = $userTable->find(1);
  3. var_dump($user->profile->email);
  4. //xxx@xxx.pl


Da się to zrobić używając rozwiązań z doctrine?
murwazy
uzyj DQL wraz z INDEXBY i zapisu $user['profile']['email']

btw. uzywanie $user->profile->email was kiedys zabije
AxZx
Cytat(murwazy @ 4.09.2009, 15:36:33 ) *
uzyj DQL wraz z INDEXBY i zapisu $user['profile']['email']

btw. uzywanie $user->profile->email was kiedys zabije


mógłbyś napisać kiedy nas zabije?
Crozin
Trochę poza tematem... czy konstrukcja na zasadzie kolumn: key, value jest konieczna? Czy ilość różnych kluczy jest tak duża, że nie dałoby się po prostu zrobić kolumn: email, first_name, last_name itd? W końcu profil to nie jakieś preferencje itp... chociaż w sumie może być cała masa różnych danych.
Cytat
btw. uzywanie $user->profile->email was kiedys zabije
Również zapytam: dlaczego miałoby to nas zabić?
mdx
Cytat(murwazy @ 4.09.2009, 15:36:33 ) *
uzyj DQL wraz z INDEXBY i zapisu $user['profile']['email']
btw. uzywanie $user->profile->email was kiedys zabije

No tak, ale jak zrobić później sensownie update takiego rekordu.

Cytat(Crozin @ 4.09.2009, 16:52:04 ) *
Trochę poza tematem... czy konstrukcja na zasadzie kolumn: key, value jest konieczna?

Tak, ponieważ mam kilka różnych typów użytkowników totalnie się od siebie różniących.
murwazy
Cytat(mdx @ 4.09.2009, 18:02:26 ) *
No tak, ale jak zrobić później sensownie update takiego rekordu.

ile operacji update przypada na wyciaganie danych?
inna sprawa, ze jesli bedziesz chcial uaktualnic profil nie musisz odczytac rekordu uzytkownika.

dlaczego zabije?
koledzy podepnijcie profiler i zobaczcie co sie dzieje przy takim zapisie.
echo $user->profile->email[0]->id;

dodajcie sobie iterowanie kolekcji $user->profile->email i zrobcie testy
AxZx
Cytat(murwazy @ 6.09.2009, 09:50:29 ) *
dlaczego zabije?
koledzy podepnijcie profiler i zobaczcie co sie dzieje przy takim zapisie.
echo $user->profile->email[0]->id;

dodajcie sobie iterowanie kolekcji $user->profile->email i zrobcie testy


znowu enigmatycznie napisałeś. napisz konkretnie o co Ci chodzi i już. może coś źle zrobiłeś skoro myślisz o zabijaniu?:/
murwazy
Cytat(AxZx @ 6.09.2009, 21:45:54 ) *
znowu enigmatycznie napisałeś.

jasniej sie nie da, zrob to co napisalem i sprawdz sam.
podpowiem bo chyba nie jestes w temacie: chodzi o wydajnosc smile.gif
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-2024 Invision Power Services, Inc.