Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 3 Dołączył: 11.06.2015 Ostrzeżenie: (0%)
|
Pytanie w sumie trochę z PHP trochę z MySQL, a trochę ogólne.
Mam tabele w bazie w których powiązania robię po INT ~id~. np: articles.author_id - user.id articles.category - category.id itp itd Często mam potrzebę pobrania danych, które znajdują się w różnych tabelach - normalne. Przykładowo jest artykuł, pobieram wszystkie dane, no i przydałyby się także dane autora. Mam jego id (np author_id z tabeli articles), ale przydała by się także nazwa Co byście radzili w tej sytuacji? dwa przypadki: 1. potrzebuję tylko nazwę tego usera (np do jej wyświetlenia) - reszta mnie nie obchodzi 2. potrzebuję więcej danych niż tylko nazwa (np potrzebuje nazwę, avatar, datę rejestracji i ostatniej wizyty - jak np na forum) Przypadek 1 ----------------------- a.) Pobieram nazwę usera (np user.name) korzystając z INNER JOIN b.) używam jakiejś funkcji, która pobierze tą nazwę np :
c.) Nic nie łącze , nie używam żadnych funkcji. Klucze obce robię na zasadzie articles.author - user.name (varchar - czyli mam gotowego stringa z nazwą usera w tabeli articles), a ponieważ używam InnoDB mogę sobie użyć ON UPDATE, ON DELETE - CASCADE i nie przejmuje się co będzie jak user zmieni nazwę Przypadek 2 ----------------------- a.) Jak w przypadku 1. Łącze tabele JOINem pobierając resztę danych b.) używam sobie funkcji w taki sposób
c.) W przeciwieństwie do c - przykład 1 , tutaj trzeba coś złączyć/wydobyć dodatkowe dane. Więc klucze obce lepiej pewnie zrobić na intach ze względu na wygodę i oszczędność miejsca. Czyli napisałem sobie ten podpunkt w związku z niczym. Ewentualnie jakie inne rozwiązanie byście polecili? Edit: W sumie w nawiązaniu do powyższych -rozwiązanie (IMG:style_emoticons/default/cool.gif) - co myślicie o ustawieniu w kontrolerze obiektu jako pola w widoku ? : tzn:
i później w widoku w jakimś szablonie artykuly.html
Ten post edytował RysQ 11.06.2015, 14:33:54 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Poraz kolejny nie tedy droga.
Pomijajac juz fakt, ze name moze sie zmienic, bo może, to ID jest szybszym kluczem niz tekst. Nie kombinuj, tylko zrob to porządnie jak bozia przykazała. |
|
|
|
RysQ pobieranie danych |różne tabele | inner joiny | funkcje php 11.06.2015, 14:32:31
nospor Rozwiązanie z pobieraniem danych usera w petli to ... 11.06.2015, 14:38:06
RysQ Dzięki za szybko odpowiedź.
Tak tez mi się wydawa... 11.06.2015, 14:57:27
RysQ Ok. To robię JOINA . Jeszcze raz dzięki za pomoc.
... 11.06.2015, 15:03:23
Pyton_000 Co z tego skoro i tak robisz FK, wię i tak będzie ... 11.06.2015, 15:20:07
RysQ No byłaby różnica. Bo przypadku kiedy chciałbym do... 11.06.2015, 15:38:31 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 18:24 |