![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Witam i z góry przepraszam za tytuł tematu, ale nie wiedziałem jak to opisać.
Piszę pewien katalog i akurat jestem na poziomie pisania systemu uploadu i downloadu plików. Wpadłem na pewien pomysł. Mianowicie, zamiast zmuszać użytkownika do wpisywania pełnych adresów do zdjęć danego produktu i zapisywać to w DB, zrobić w folderze głównym folder o nazwie takiej samej jak ID danego produktu, i podczas wyświetlania tego produktu, sprawdzać, czy istnieje taki katalog i w nim zdjęcia, i stamtąd pobierać nazwy i wyświetlać zdjęcia. Np. mamy kategorię ProductOne i dla tej kategorii tworzymy główny katalog o tej samej nazwie w katalogu upload. Podczas gdy będzie dodawany nowy produkt do tego katalogu i zdjęcia do niego, zostanie utworzony nowy katalog o nazwe ID produktu, np. upload/productone/155, i w tym katalogu zamieszczać wszystkie zdjęcia. A gdy ktoś będzie odwiedzał naszą stronę, będziemy sprawdzać czy katalog o ID produktu istnieje i będziemy pobierać wszystkie obrazki jakie tam są, i wyświetlać je. Wg mnie, dość dobry patent na to, aby w jakimś stopniu zapobiec zapełnianiu sie przestrzeni dyskowej niepotrzebnymi plikami, które nie będą wykorzystywane. Ale teraz pytanie, czy to nie będzie zbyt obciążające dla serwera? Żeby za każdym razem sprawdzać czy katalog istnieje, przebierać po wszystkich plikach w tym katalogu, pobierać ich nazwy i dopiero wyświetlać? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Cudny: Po pierwsze, jeśli uważasz, że drzewiastej struktury nie można wrzucić do bazy i odpytywać inaczej niż rekurencyjnie to się z deczka mylisz. Co zabawniejsze... mogę ją pobrać jednym zapytaniem (IMG:style_emoticons/default/smile.gif) Jedyne utrudnienia są przy edycji (dodawanie, edycja. usuwanie) węzłów i na to trzeba kilku zapytań, ale ile razy to robisz? Zazwyczaj te operacje są tylko sporadycznie po postawieniu serwisu. Właśnie kilka dni temu to robiłem w oparciu o bazę danych. W zasadzie w chwili obecnej całą strukturę kategorii wrzucam do bazy i zapisuję w cache'u, a w razie edycji ten cache aktualizuję. Baza więc ma niemal zerowe obciążenie z tego powodu bo przez 99% czasu używam cache'u. Właściwie to dostosowałem do własnych celów jsTree, którego kod odwalił za mnie 90% roboty.
Po drugie to jeśli się bawisz już plikami xml, to chyba zdajesz sobie sprawę, jak upierdliwe jest edytowanie czy modyfikacja struktury zazwyczaj. Ja już nawet nie mówię o poszukiwaniu elementu o nieznanej do końca ścieżce. XPath to świetna rzecz, ale w porównaniu do SQL i tak wypada blado. Cokolwiek ciutkę bardziej złożonego i jest problem. Już nawet nie mówię, że poprzez pliki XML można serwer wywalić. Poczytaj o ataku "one million laught" czy preparowaniu xml o złośliwej strukturze. To są rzeczy o których się niewiele mówi, ale są równie zabójcze dla serwisów jak sql-injection. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 05:51 |