[Zalozenia] Struktury tabeli przechowujacej tekst

0

Zakladamy, ze teksty (czy to opis klasy, czy metod) bedzie przechowywany w jednej tabli - np. text. Z uwagi na to, ze encyklopedia bedzie mogla przechowywac rowniez starsze wersje tekstow, proponuje nastepujaca strukture tej tabeli:

id - ID artykulu (nie bedacy wartoscia unikalna!)
text - pole longtext (zawartosc artykulu)
log - opis zmian w dokonanej wersji
time - czas utworzenia (w formacie UNIX)
user - ID usera ktory dodal wpis
ip - IP z ktorego wpis zostal utworzony
username - pole puste, nazwa uzytkownika (jezeli anonimowy)

Nalezy zauwazyc, ze pole ID nie jest wartoscia unikalna (czyli moze istniec kilka wpisow o takim samym ID, czyli inaczej - kilka wersji tego artykulu), najbardziej aktualna wersje nalezy odczytywac po polu time.

Druga wersja

Podzial powyzszej tabeli na dwie. Mozna dodac opcje blokowania wybranych stron, dodac licznik odslon oraz wyrozniania artykulow. Mozna takze dodac kolumne, ktora bedzie przechowywac artykuly "do zrobienia". W takim wypadku do powyzszej struktury nalezaloby dodac pare dodatkowych pol:

id - ID artykulu
text - pole longtext (zawartosc artykulu)
log - opis zmian w dokonanej wersji
time - czas utworzenia (w formacie UNIX)
user - ID usera ktory dodal wpis
ip - IP z ktorego wpis zostal utworzony
username - pole puste, nazwa uzytkownika (jezeli anonimowy)
lock - czy zablokowany?
counter - licznik odslon
todo - artykul nie zostal ukonczony

W takim wypadku konieczne by bylo dublowanie ostatnich trzech pol w kazdej wersji tekstu. Mozna zatem zrobi tak, aby kolumna ID byla unikalna, a kazdy rekord w tabeli oznaczal osobny tekst. Sama zawartosc (kolejna wersja) bylaby przechowywana w osobnej tabeli:

id - ID artykulu (nie bedacy wartoscia unikalna!)
text - pole longtext (zawartosc artykulu)
log - opis zmian w dokonanej wersji
time - czas utworzenia (w formacie UNIX)
user - ID usera ktory dodal wpis
ip - IP z ktorego wpis zostal utworzony
username - pole puste, nazwa uzytkownika (jezeli anonimowy)

Nastepnie te dwie tabele zostalyby polaczone w trakcie wykonywania skryptu. Zapraszam do dyskusji.

0

ta druga wersja, zdecydowanie lepsza, przy ew. wielu modyfikacjach bedzie mniej zajmowała

//gratuluje posta No 2500

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