Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [doctrine] sub obiekt z tabeli (rel_id, key, value)
mdx
post 4.09.2009, 11:34:20
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 7.03.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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?

Ten post edytował mdx 4.09.2009, 11:36:13


--------------------
MDX.PL
Go to the top of the page
+Quote Post
murwazy
post 4.09.2009, 14:36:33
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 13.04.2007
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


uzyj DQL wraz z INDEXBY i zapisu $user['profile']['email']

btw. uzywanie $user->profile->email was kiedys zabije
Go to the top of the page
+Quote Post
AxZx
post 4.09.2009, 15:02:13
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


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?


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Crozin
post 4.09.2009, 15:52:04
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
mdx
post 4.09.2009, 17:02:26
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 7.03.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.


--------------------
MDX.PL
Go to the top of the page
+Quote Post
murwazy
post 6.09.2009, 08:50:29
Post #6





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 13.04.2007
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
AxZx
post 6.09.2009, 20:45:54
Post #7





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


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?:/


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
murwazy
post 7.09.2009, 10:56:32
Post #8





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 13.04.2007
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 10:10