[PHP][MySQL] Dodawanie artykułów do bazy i ich edycja

0

Witam,
Posiadam strone, na której użytkownik ma możliwość dodać artykuł.
Jednak jeszcze funkcja edycji nie jest dodana.

Użytkownik pisze w BBCode, następnie kod jest parsowany i zamieniane są znaczniki BB na html.

Zastanawiam sie, czy pisać eregi, które zamienią z powrotem kod HTML-owy na BBCode, czy też dodać do bazy HTML i BBCode, następnie przy edycji użytkownik zobaczy BBCode i skrypt będzie po jego edycji wygenerowywał nowy HTML.

0

A może dodać do bazy BBCode i przerabiać go do HTML w przypadku chęci obejrzenia artykułu przez czytelnika? Wtedy edycja nie ma znaczenia.

Tak jest phpBB zrobione.

0

No tak, ale przecież każdorazowe wyświetlenie strony spowoduje, że mój serwer będzie musiał eregować BBCode. Czy to nie zwiększy obciążenia?

0

żeby każdorazowe wyświetlenie strony obciążało zbytnio serwer, to strona musiałaby się składać w większości z BBCode. A tych zazwyczaj jest troszkę do "ozdoby".
Zrób tak jak napisał Ktoś - będziesz miał z głowy problem z edycją...
Ew. jeśli tak się boisz obciążania serwera, zawsze możesz dać dwa pola w bazie danych:
art_plain
art_bbcode
i robić to tak, że w momencie zapisu czystego artykułu do bazy do art_plain, "eregujesz" sobie to do art_bbcode. A na stronie wyświetlasz z pola art_bbcode.... Albo coś w tym rodzaju :)

0

Zobaczymy jak te eregowanie wpłynie na obciążenie procesora, może faktycznie w skali mojego problemu nie będzie drastycznego skoku. Jak będzie źle to zastosuje mój sposób wyżej z dwoma tabelami z BBCodem i HTML-em.
Twojego sposobu madmike do końca nie rozumiem ;).

0

Późno, więc może się niezbyt jasno wyrażam... Czego nie rozumiesz?? Ja coś takiego stosowałem, nie do bbcode, ale pod kątem wyszukiwarki na stronie...

Edit:
Aha, nie zauważyłem, że "sprytnie" edytowałeś swojego posta....

BTW: nie dwoma tabelami, ale dwoma polami tabel...

0

Jak już dbasz o oszczędzanie procesora to masz jeszcze dwie rzeczy: możesz raz przerobić BBCode na HTML i go wyświetlać jak user zażąda strony, a cache taki zapisać w pliku i aktualizować po aktualizacji artykułu. Nie w bazie, żeby jeszcze dodatkowo nie męczyć procesora łączeniem z bazą danych.

I nie używaj ereg, preg jest ogólnie wydajniejszy. Zresztą ereg jest "deprecated".

0

Edycja mojego posta nie wniosła nic nowego poza zamianą słowa: "wygenerowywać" na "wygenerowywał", wiec niewiem czemu tak sprytnie.
Nie rozumiem, czym Twój sposób różni sie od mojego.

Drugi sposób Ktos-a też jest dobry.
Jednak wybranie z bazy nie bedzie sie wiele różnić od od czytania z dysku, jezeli chodzi o obciążenie, a wydaje mi sie, ze baza jest profesjonalniejszym rozwiazaniem niz pliki.

0

Ktosiowi chodziło raczej o samo cacheowanie zapytań sql, tzn., po aktualizacji artykułu jego wersja gotowa do wyświetlenia jest zapisywana w pliku. Po co tak? Już to Ktos wyjaśnił - mniejsze obciążenie serwera (nie trzeba korzystać z bazy przy wyświetlaniu), co będzie szybsze? Nie wiem, ale w niektórych przypadkach cacheowanie bazy do plików może być lepszym rozwiązaniem jeśli bierzemy pod uwagę wydajność i czas generowania strony.

Pozdrawiam mac

1 użytkowników online, w tym zalogowanych: 0, gości: 1