![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jest sobie baza danych ze zdjęciami. Kod wyświetlający pojedyncze zdjęcie jest taki:
id jest auto_increment. Chciałbym przy tym pojedynczym zdjęciu dodać linki do zdjęcia następnego oraz poprzedniego. Wszystko było by proste, gdyby id leciało po kolei. Ale kiedy usuwa się jakieś zdjęcie to powstają dziury np. id=1,2,5,7, itp. Nie wiem czy istnieje jakieś zapytanie, które pobiera sąsiednie rekordy? z góry dzięki za odpowiedź. pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Proponuję dodać kolumnę aktywny i zamiast kasować rekordy dać 1-aktywny, 2-nieaktywny.
W ten sposób robisz pętlę i dajesz dekrementację rekordu + warunek że jeśli nie aktywny raz jeszcze dekrementacja i tak dalej - w końcu wyjdzie, które id je poprzednie i aktywne. To moja propozycja - wtedy zawsze masz wszystko po kolei. pzdr Można jeszcze nie ingerować w bazę - dajesz
wtedy masz ostatnie id mniejsze od 8 czyli jeśli istnieją id 1,2,3,5,6,8 to pobierze ci id nr 6 pzdr Ten post edytował cudny 27.09.2009, 11:52:16 -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy pomysł w moim przypadku się nie sprawdzi ponieważ galeria ma możliwość filtracji wg kategorii oraz wg użytkownika, zatem linki będą wyglądały tak:
<<poprzednie z kategorii - następne z kategorii >> i tutaj np. id poprzednie mogą być 77, 90, 120 itp w innym wypadku <<poprzednie użytkownika - następne użytkownika >> i tutaj id mogą być 30, 35, 78 itp. Natomiast ten drugi pomysł wydaje się być ciekawy Można by zrobić tak:
muszę tylko sprawdzić czy to będzie prawidłowo działało. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
u kolegi mozesz poczytac: http://nospor.pl/mysql-faq-n25.html#faq-4
-------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za rady, zrobiłem i działa.
Zastanawiam się tylko czy zbyt duża ilość zapytań do bazy danych nie wpłynie na wydajność serwera. W moim przypadku wygląda to tak: 3 zapytania aby uzyskać linki poprzednie-następne, poprzednie-następne w kategorii oraz poprzednie-następne autora 1 zapytanie aby uzyskać nazwę pliku z fotografią. 1 zapytanie aby zaktualizować licznik odsłon fotografii. 1 zapytanie aby pobrać komentarze oraz avatary. 1 zapytanie sprawdzające czy nie ma nowych wiadomości PW. i to wszystko się wykonuje w momencie wczytania każdej fotografii. Nie będzie tego za dużo? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Jesli masz na wszystko dobrze pozakladane indexy to nie powinno byc problemu z wydajnoscia. Zawsze mozesz cachowac zapytania (lub zostawic to dla mysqla aby to on cachowal)
-------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:40 |