[mysql] galeria zdjec - numerowanie zdjec
sd - 17-06-2007 00:15
[mysql] galeria zdjec - numerowanie zdjec
witam
mam tabele zdjecia: zdjecie_id | galeria_id | nazwa
wyswietlam teraz galerie - wszystkie zdjecia z galeria_id = 4 sortuje wg zdjecie_id (ASC)
teraz chce wyswietlic 'ktore zdjecie w galerii' na 'ile zdjec w galerii'
sume zdjec w galerii policzylem, a jak policzyc ktore to jest zdjecie w galerii biorac pod uwage waunki podane powyzej?
ma ktos pomysl na zapytanie?
pozdrawiam
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 17-06-2007 00:15
sd wrote: > witam > > mam tabele zdjecia: zdjecie_id | galeria_id | nazwa > > wyswietlam teraz galerie - wszystkie zdjecia z galeria_id = 4 > sortuje wg zdjecie_id (ASC) > > teraz chce wyswietlic 'ktore zdjecie w galerii' na 'ile zdjec w galerii' > > sume zdjec w galerii policzylem, a jak policzyc ktore to jest zdjecie w > galerii biorac pod uwage waunki podane powyzej? > > ma ktos pomysl na zapytanie?
Naj?atwiej przy fetchowaniu rekordów liczy? (uniwersalne dla wszystkich baz). Mysql obs?uguje zmienne w zapytaniach, wiec mo?esz i w zapytaniu to zrobi?.
-- P.M.
sd - 17-06-2007 00:15
Pawe? Matejski pisze:
> Naj?atwiej przy fetchowaniu rekordów liczy? (uniwersalne dla wszystkich baz). > Mysql obs?uguje zmienne w zapytaniach, wiec mo?esz i w zapytaniu to zrobi?.
czyli trzeba by jakas funkcje napisac i wykonywac ja przed pobraniem danych pojedynczego zdjecia
hmm ale jak taka funkcja powinna wygladac?
sd - 17-06-2007 00:15
znowu sobie sam odpisze, zapytam czy tak moze byc
SELECT count(*) as ktory, (select count(*) from zdjecie where galeria_id = 7) as ile FROM zdjecie WHERE galeria_id = 7 AND zdjecie_id <= 9;
Maciek Dobrzanski - 17-06-2007 00:15
"sd" <sd@sd.com> wrote in message news:f2uuv9$pre$1@node4.news.atman.pl... > znowu sobie sam odpisze, zapytam czy tak moze byc > > SELECT count(*) as ktory, (select count(*) from zdjecie where galeria_id = > 7) as ile FROM zdjecie WHERE galeria_id = 7 AND zdjecie_id <= 9;
Ech, napewno nie. Mo?esz trzyma? kolumn?, która b?dzie zawiera?a kolejny numer zdj?cia w galerii, ewentualnie wraz z unikalnym kluczem na par? (galeria_id, zdjecie_nr), ale by? mo?e to zb?dny koszt. Stosunek operacji dodania/usuni?cia zdj?cia do wy?wietle? jest zapewne znikomy, wi?c nawet przenumerowywanie w przypadku takich operacji mo?e by? lepszym pomys?em ni? to co napisa?e?.
Ewentualnie numer zdj?cia mo?esz poprostu uniezale?ni? od bazy danych, przenie?? go do aplikacji, pobiera? zdj?cie o zadanym przesuni?ciu wzgl?dem pocz?tku listy utworzonej wed?ug wybranej kolejno?ci, np. SELECT ... FROM zdjecie WHERE galeria_id = N ORDER BY zdjecie_id ASC LIMIT 1 OFFSET M, gdzie N to identyfikator galerii, M to przesuni?cie (0 <= M < liczba zdj?? w galeria_id).
Itp.
Maciek
sd - 17-06-2007 00:15
Maciek Dobrzanski pisze:
> Ech, napewno nie. Mo?esz trzyma? kolumn?, która b?dzie zawiera?a kolejny > numer zdj?cia w galerii, ewentualnie wraz z unikalnym kluczem na par? > (galeria_id, zdjecie_nr), ale by? mo?e to zb?dny koszt. Stosunek > operacji dodania/usuni?cia zdj?cia do wy?wietle? jest zapewne znikomy, > wi?c nawet przenumerowywanie w przypadku takich operacji mo?e by? > lepszym pomys?em ni? to co napisa?e?.
ale czemu nie to moje rozwiazanie? bo nie dziala czy dlatego ze za bardzo obciaza baze? przy jakiej ilosci danych w tabeli zdjecie bede widzial ze to zapytanie jest toporne?
Menel - 17-06-2007 00:15
sd <sd@sd.com> napisa?(a):
> witam > > mam tabele zdjecia: zdjecie_id | galeria_id | nazwa
a mo?e PRIMARY KEY oparty na 2 kolumnach? Pozdr.
-- Wys?ano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Maciek Dobrzanski - 17-06-2007 00:15
"sd" <sd@sd.com> wrote in message news:f2vhhe$pr5$1@node1.news.atman.pl...
> ale czemu nie to moje rozwiazanie? > bo nie dziala czy dlatego ze za bardzo obciaza baze?
Dzia?a? mo?e i dzia?a, natomiast napewno nieefektywnie wykorzystuje zasoby. Po pierwsze zmuszasz baz? do analizy i optymalizacji dwóch zapyta?, po drugie przegl?daj? one te same dane wielokrotnie, cho? zupe?nie nie jest to potrzebne.
> przy jakiej ilosci danych w tabeli zdjecie bede widzial ze to zapytanie > jest toporne?
Trudno powiedzie?. Mo?e nie ma takiej sytuacji, w której to odczujesz. To zale?y od wielu czynników zwi?zanych np. ze struktur? tabel, konfiguracj? bazy czy obci??eniem samego systemu. Natomiast podej?cie na "czuja" jest niew?a?ciwe. Projektuj?c baz? danych powinien interesowa? Ci? przede wszystkim koszt wyra?any konkretnymi liczbami, wra?enie u?ytkownika to kwestia pochodna, cz?sto bardzo mylna (tj. na przyk?ad co? "robi" szybko, ale cichaczem pod spodem za ka?dym razem wykorzystanie CPU leci na 100%).
Maciek
sd - 17-06-2007 00:15
Maciek Dobrzanski pisze:
> Trudno powiedzie?. Mo?e nie ma takiej sytuacji, w której to odczujesz. > To zale?y od wielu czynników zwi?zanych np. ze struktur? tabel, > konfiguracj? bazy czy obci??eniem samego systemu. Natomiast podej?cie na > "czuja" jest niew?a?ciwe. Projektuj?c baz? danych powinien interesowa? > Ci? przede wszystkim koszt wyra?any konkretnymi liczbami, wra?enie > u?ytkownika to kwestia pochodna, cz?sto bardzo mylna (tj. na przyk?ad > co? "robi" szybko, ale cichaczem pod spodem za ka?dym razem > wykorzystanie CPU leci na 100%).
masz racje, ten bajer wlasciwie wymyslilem pozniej, przy projektowaniu bazy nie zakladalem ze bede takie informacje prezentowal, chcialem w latwy sposob dodac taki bajer. ale poswiecilem kilka minut i dorobilem kolumne kolejnosc i wlasnie z niej pobierana jest ta informacja i wg danych z tej kolumny sortowane sa zdjecia.
dzieki za mobilizacje:) pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[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?=
zanotowane.pldoc.pisz.plpdf.pisz.plmorebeer.opx.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 |
|