Leezard
19.03.2005, 10:05:28
czesc
mam sobie stronke, ktora musi miec mozliwosc wyswietlania roznych typow zawartosci, poczynajac od zwyklego tekstu, przez tekst html, jakas galerie, jakis formularz itp... Troche tego jest. Kazdy taki typ zawartosci musi byc osobno konfigurowalny, tzn dla zwyklego tesktu mamy formularz zawierajacy pola np:
- tytul
- tresc
- podsumowanie
- ...
dla galerii mamy drugi formularz ktoy ma pola np:
- opis jakis
- jakas lista zdjec do wyboru (moze w postaci multi select'a)
- ...
dla html:
- tytul
- kod html
- ...
W zwiazku z tym, ze jest taka roznorodnosc tych danych, i nie widze sposobu jak je jakos usystematyzowac (musza byc trzymane w bazie), pomyslalem ze moze uzyc sobie serializacji. Tzn stworzyc dla kazdego takiego typu osobna klase, tworzyc jej instancje, wypelniac odpowiednie pola danymi przeslanymi z formularza, potem serializowac obiekt i do bazy. Dzieki temu mialbym tylko jedno pole dla calej zawartosci w bazie. A potem odserializowac, wyciagnac nazwe klasy i juz wiem jak mam to wyswietlic.
Czy to jest przyzwoite wyjscie z sytuacji?
I jeszcze jedno pytanie: serialize zapisuje dane w stringu. Jak jest z dlugoscia tego ciagu przy duzych zmiennych, tzn gdybym np mial sporo tekstu w ktoryms z obiektow?
ActivePlayer
20.03.2005, 03:14:29
Fajnie jest potem wykonac zapytanie
Kod
SELECT * FROM costam WHERE...
, jak chcesz cos takiego czynic, to odpusc sobie bazy danych, tylko na plikach zrób... na to samo wyjdzie.
Leezard
20.03.2005, 03:48:58
nie bardzo wiem o czym mowisz (zapytanie).
W tabeli w bazie danych sa pola np takie:
id_strony | tytul strony | zawartosc | ...
i teraz strona o np id = 2 ma jako tresc galerie, wiec serializuje obiekt stworzony z danych przeslanych z formularza i wrzucam do tabeli do pola zawartosc dla id_strony=2. potem jesli user chce strone o id 2 to robie sobie select * from tabela where id_strony=2, ustawiam wszystkie wartosci (tytul itd..), robie unserialize i wrzucam w szablon pozostale dane.
a co jest nie tak z baza w tej kwestii? wydaje mi sie ze jest jednak dobrym sposobem na trzymanie takich danych.
donpablo
20.03.2005, 10:11:39
jeśli rzeczywiście uparłeś się na przechowywanie takich danych jak np. pliki graficzne to baza danych, z drugiej strony nie jest to zbyt szczęśliwe rozwiązanie z takim serializowaniem obiektów. Może lepiej pomyśleć nad innym rozwiazaniem, np. zamiast zapisywać tony ciągów znaków do bazy, wpisać np. nick pliku graficznego i za jego pomocą identyfikować taki plik umieszczony w osobnym katalogu??
Leezard
20.03.2005, 10:51:16
tak wlasnie chce robic. nie mam zamiaru wrzucac do bazy obrazkow ani nic podobnego, a jedynie dane o tym jakie obrazki, w jakiej kolejnosci i z jakimi opisami maja byc wyswietlone. Serializuje tylko zawartosc tego multi-selecta w ktorym wybieram fotki, opisy do poszczegolnych fotek, itp - bez zadnych binarnych zawartosci i serializowania tego. Gdyby wszedize byla galeria to nie byloby problemu, struktura tabeli w bazie bylaby jednakowa dla wszystkich mozliwych typow zawartosci. Na stronie ma byc wyswietlane kilka typow roznych zawartosci jak wlasnie galeria (ktora musi miec konfigurowalen parametry: liczba zdjec, lista zdjec, opisy do nich itd...), lub kod html (np z edytora wysiwyg), ktory nie bedize posiadal pola w formularzu "lista zdjec". Dlatego tego typu zawartosci nie wrzuce juz w tabele odpowiednia dla galerii. wiec myslalem o zserializowaniu danych przeslanych z formularza konfiguracji danego typu strony, i wrzuceniu tego jakos string w jedno pole bazy. Wtedy mam strukture tabeli niezalezna od typu zawartosci.
Ale jak mowie, w bazie tyrzymam tylko parametry tekstowe przeslane z formularza, rozne dla kazdego typu zawartosci, bez zadnych binarnych danych.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.