Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Model, Problem z modelem
Nekro
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 3.01.2007
Skąd: Żory

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


Witam,

Wlasne jestem na etapie tworzenia wieksze projektu i mam nastepujacy problem.
Mam 3 klasy modelu:
- User (tabela: tusr)
- Company (tcompany)
- ContactInfo (tcontactinfo) : zapisuje tam maile, www, telefony rozrozniajac je po typie

Nie wiem jak sie uporac sie z taka sytuacja.
Uzytkownicy i firmy posiadaja informacje kontaktowe czyli jakby nie patrzac mamy sytuacje:
tuser.id 1------n tcontactinfo.id
tcompany.id 1-------- n tcontactinfo.id

A zeby tego bylo malo to jest tez taka sytuacja ze firmy moga miec przypisanych uzytkownikow
tcompany 1 ------- n User

I teraz jak skonstruowac model z kluczami obcymi itp. Wiadomo ze mozna by to zrobic bez kluczy obcych ale troche lyso (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Z gory dzieki za pomoc

Dodam ze probowalem nawet zapisywac uzytkwonikow i firmy w jednej tablicy ale potem mialem problem z sytuacja, w ktorej tusr odwolywal sie do siebe samej bo firma moze miec uzytkownikow :/

Ten post edytował Nekro 7.01.2008, 22:05:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nekro
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 3.01.2007
Skąd: Żory

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


Czyli sugerujesz zeby polaczenie zrobic tylko miedzy user -> company a tabele tcontactinfo nie laczyc z zadna z nich (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Czyli powiedzmy w skrocie cos takiego:

tcompany:
id
...

tusr:
id:
tcompany_id
....

tcontactinfo
id:
typ: (gdzie typ to mail,www,telefon)
wartosc:
domyslny:

I plus do tego odpowiednie metody do pobierania informacji kontaktowych w klasach dla tusr i tcompany??
Hmmm o tym nie pomyslalem....dzieki
Tylko mnie jeszcze jedna rzecz zastanawia. JAk bede wyswietlal liste uzytkownikow a na niej: Imie, nazwisko, mail, telefon, to dla jednego uzytkownika beda odpalane dodatkowe 2 zapytania do bazy dotyczace maila i telefonu. Majac 10 uzytkownikow na liscie to tych zapytan bedzie 20....nie uwazacie ze to moze miec wplyw na wydajnosc aplikacji (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Dodanie tych informacji do tabeli z uzytkownika nie wchodzi w gre bo zakladam ze uzytkownik moze miec wiele maili, a na liscie bedzie sie wyswietlala pozycja domyslna.

Narazie nasuwa mi sie rozwiazanie ze obok listy uzytkownikow, bede pobieral jednym zapytaniem cala liste z contactinfo dla id pobranych uzytkownikow oraz z wartoscia "default = true", w ten sposob ze kluczami tablicy beda identyfikatory uzytkownikow
Go to the top of the page
+Quote Post
jupeter
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 14.07.2004
Skąd: Warszawa

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


Cytat(Nekro @ 8.01.2008, 09:16:16 ) *
Czyli sugerujesz zeby polaczenie zrobic tylko miedzy user -> company a tabele tcontactinfo nie laczyc z zadna z nich (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


Tego nie powiedziałem. Jak masz potrzebe, to lącz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat(Nekro @ 8.01.2008, 09:16:16 ) *
Czyli powiedzmy w skrocie cos takiego:

Kod
tcompany:
  id
  ...

tuser:
  id:
  tcompany_id
    ....

tcontactinfo
  id:
  typ: (gdzie typ to mail,www,telefon)
  wartosc:
  domyslny:


Hmm, w tej schemie nie widzę relacji pomiędzy (tuser|tcompany) a tcontactinfo. Jak masz dla przykładu rekord:
w tuser o wartości:
  • id - 1
i tcontact info o wartościach:
  • id - 1
  • typ - mail
  • wartosc: mail@test.pl
  • domyslny: true
To skąd wiadomo że te rekordy są (lub nie są) powiązane?

Cytat(Nekro @ 8.01.2008, 09:16:16 ) *
Tylko mnie jeszcze jedna rzecz zastanawia. JAk bede wyswietlal liste uzytkownikow a na niej: Imie, nazwisko, mail, telefon, to dla jednego uzytkownika beda odpalane dodatkowe 2 zapytania do bazy dotyczace maila i telefonu. Majac 10 uzytkownikow na liscie to tych zapytan bedzie 20....nie uwazacie ze to moze miec wplyw na wydajnosc aplikacji (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Dodanie tych informacji do tabeli z uzytkownika nie wchodzi w gre bo zakladam ze uzytkownik moze miec wiele maili, a na liscie bedzie sie wyswietlala pozycja domyslna.


To zoptymalizuj, żeby pobierało informacje w 1 sql'u - nie podpowiem Ci jak (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat(Nekro @ 8.01.2008, 09:16:16 ) *
Narazie nasuwa mi sie rozwiazanie ze obok listy uzytkownikow, bede pobieral jednym zapytaniem cala liste z contactinfo dla id pobranych uzytkownikow oraz z wartoscia "default = true", w ten sposob ze kluczami tablicy beda identyfikatory uzytkownikow


Trochę na około, ale można i tak.
Podsumowanie: po tych postach widzę, że masz problemy nie z samym symfony, co z propelem i budowaniem modelu danych. Proponuję Ci się dokształcić, w zakresie tworzenia relacji (może budowania diagramu encji - jak się widzi ułożone encje i relacje łatwiej się uczy). Następnie proponuję przejrzeć trochę dokumentację symfony odnośnie modelu.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 12:27