ďťż
 
Pytanie o sposob wykonania zapytan ďťż
 
Pytanie o sposob wykonania zapytan
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Pytanie o sposob wykonania zapytan



Jen - 24-02-2007 00:01
Pytanie o sposob wykonania zapytan
  Witam :)

Zalozmy, ze mam w bazie 2 tabele:
1. newsy (id_newsa, id_uzytkownika_ktory_nadeslal_newsa...)
2. uzytkownicy (id_uzytkownika, login...)

Podczas wyswietlania newsow na stronie glownej (aha, bo mowa o PHP i
MySQL:)) wykorzystuje zapytanie:
SELECT * FROM newsy, uzytkownicy WHERE
id_uzytkownika=id_uzytkownika_ktory_nadeslal_newsa ;

(na ekranie wypisuje newsa i np. login uzytkownika - autora)

I wszystko super, tylko w momencie gdy uzytkownik zostanie usuniety z
bazy sila rzeczy przy tak jak wyzej skonstruowanym zapytaniu news jego
autorstwa sie nie wyswietli.

Mozna to rozwiazac tak:
1. SELECT * FROM newsy -> wyswietlic newsa i stad wziac id autora
2. SELECT * FROM uzytkownicy WHERE id=X -> X to id autora z poprzedniego
zapytania

Ale w tym momencie z 1 zapytania, ktore wybiera z bazy wszystko zrobi
sie tych zapytan 1+iloscNewsow (1 o newsy i iloscNewsow o autora). Nie
wyswietli sie juz login uzytkownika (bo user nie istnieje), ale bez
problemu wyswietli sie news.

Stad moje watpliwosci - czy skorzystac z tego drugiego rozwiazania
(gdzie bedzie sporo zapytan do bazy), czy z pierwszego, a o to aby news
sie wyswietlal poprawnie zadbac w miejscu usuwania uzytkownika (np.
utworzyc konto Anonima o id 1 i w momencie gdy uzytkownik zostanie
usuniety wszelkie newsy jego autorstwa zostana przypisane Anonimowi).

Prosze o sugestie. Jak sie takie problemy rozwiazuje?
Pozdrawiam,
P.





A.L.E.C - 24-02-2007 00:01

  Jen napisał(a):

> I wszystko super, tylko w momencie gdy uzytkownik zostanie usuniety z
> bazy sila rzeczy przy tak jak wyzej skonstruowanym zapytaniu news jego
> autorstwa sie nie wyswietli.

> Prosze o sugestie. Jak sie takie problemy rozwiazuje?

LEFT JOIN

--
Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252
LAN Management System Developer http://lms.org.pl




Jen - 24-02-2007 00:02

  A.L.E.C napisał(a):

> LEFT JOIN

Dziekuje:)




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 24-02-2007 00:02

  Jen wrote:
> Witam :)
>
> Zalozmy, ze mam w bazie 2 tabele:
> 1. newsy (id_newsa, id_uzytkownika_ktory_nadeslal_newsa...)
> 2. uzytkownicy (id_uzytkownika, login...)
>
> Podczas wyswietlania newsow na stronie glownej (aha, bo mowa o PHP i
> MySQL:)) wykorzystuje zapytanie:
> SELECT * FROM newsy, uzytkownicy WHERE
> id_uzytkownika=id_uzytkownika_ktory_nadeslal_newsa ;
>
> (na ekranie wypisuje newsa i np. login uzytkownika - autora)
>
> I wszystko super, tylko w momencie gdy uzytkownik zostanie usuniety z
> bazy sila rzeczy przy tak jak wyzej skonstruowanym zapytaniu news jego
> autorstwa sie nie wyswietli.
>
> Mozna to rozwiazac tak:
> 1. SELECT * FROM newsy -> wyswietlic newsa i stad wziac id autora
> 2. SELECT * FROM uzytkownicy WHERE id=X -> X to id autora z poprzedniego
> zapytania
>
> Ale w tym momencie z 1 zapytania, ktore wybiera z bazy wszystko zrobi
> sie tych zapytan 1+iloscNewsow (1 o newsy i iloscNewsow o autora). Nie
> wyswietli sie juz login uzytkownika (bo user nie istnieje), ale bez
> problemu wyswietli sie news.
>
> Stad moje watpliwosci - czy skorzystac z tego drugiego rozwiazania
> (gdzie bedzie sporo zapytan do bazy), czy z pierwszego, a o to aby news
> sie wyswietlal poprawnie zadbac w miejscu usuwania uzytkownika (np.
> utworzyc konto Anonima o id 1 i w momencie gdy uzytkownik zostanie
> usuniety wszelkie newsy jego autorstwa zostana przypisane Anonimowi).

Lepiej użytkownika nie kasować, przynajmniej dokąd ma newsy (albo inne rekordy
zależne), a jego rekord stosownie oznaczyć.

--
P.M.





William - 27-02-2007 00:02

  > Prosze o sugestie. Jak sie takie problemy rozwiazuje?
> Pozdrawiam,
> P.

W większości dziedzin rekordów się nie usuwa tylko nadaje np. status
zblokowanego, nieaktywnego. Chyba że na pewno nie chcesz już tych
informacji o użytkowniku do niczego trzymać to LEFT JOIN




Mariusz Kruk - 27-02-2007 00:02

  epsilon$ while read LINE; do echo ">$LINE"; done < Jen
>Ale w tym momencie z 1 zapytania, ktore wybiera z bazy wszystko zrobi
>sie tych zapytan 1+iloscNewsow (1 o newsy i iloscNewsow o autora). Nie

W kwestii formalnej - nie "ilość", tylko "liczba" Newsów.
(tak, wiem że off-topic, ale rozwijajmy się nie tylko w kwestiach
technicznych).

--
Kruk@ -\ | Microsoft Office 2000: 50% więcej plików w
}-> epsilon.eu.org | oknie dialogowym
http:// -/ |
|
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?= phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?= [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?= [MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?= mecze sie i mecze i nic - zapytanie czesciowe
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kfia-tek.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com