ok
zostawie swoją wersje dla potomnych:)
wiec tak. podczas pisania kodu doszedłem do wniosku ze wystarczy tylko 1 tabela. jej przykładowa struktura tak wygląda:
CREATE TABLE IF NOT EXISTS `pw_cont` (
`id_pw` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_ob` int(10) UNSIGNED NOT NULL,
`id_usr_send` int(5) UNSIGNED NOT NULL,
`id_usr_rece` int(5) UNSIGNED NOT NULL,
`title` text COLLATE utf8_polish_ci,
`content` text COLLATE utf8_polish_ci,
`dell_by_usr_send` tinyint(1) UNSIGNED NOT NULL,
`dell_by_usr_rece` tinyint(1) UNSIGNED NOT NULL,
`read` tinyint(1) UNSIGNED NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_pw`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;
natomiast aplikacja obsługuje to w następujący sposób:
1. Wyświetlanie:
a. sprawdzam czy jest dostęp do wiadomosci ( uzytkownik musi byc albo adresatem albo odbiorcą)
b. skrzynka odbiorcza - wyswietlam tylko wiadomosci ktore maja flage dell_by_usr_rece ustawiona na 0
c. skrzynka nadawcza - wyswietlam tylko wiadomosci ktore maja flage dell_by_usr_send ustawiona na 0
d. jesli read ma flage 0 to uzytkownikowi pokazuje sie info ze ma nieprzeczytana wiadomosc (liczy sume nierzpeczytanych wiadomosci )
e. flaga read automatycznie ustawiana jest na 1 po wejsciu w wiadomosc przez odbiorce. (wiadomosc jest pogrubiona dopuki nie zostala przeczytana)
f. po wejsciu w konkretna wiadomosc, w przypadku gdy rozmowa toczyla sie juz wczesniej - wiadomosc najnowsza wyswietla sie na gorze - a pozostale z tlem przyciemnionym i tabulatorem na dole.
2. dodawanie:
a. id_ob - zmieniane jest tylko w przypadku zalozenia nowego tematu ,
b. przy odpowiedzi - do title dopisuje ciąg "re: "
3. usuwanie:
a. gdy nadawca usuwa - sprawdzam czy wiadomosc nie zostala juz usunieta przez odbiorce ( sprawdzam dell_by_usr_rece ) jesli ustawione jest na 0 (nie usunieta) to ustawiam dell_by_usr_send = 1; jesli ustawione 1 to kasuje caly rekord z tabeli.
podczas pisania tej wypowiedzi, doszedłem do wniosku ze to usuwanie jest wadą tego sytemu.
bo gdy usuniemy cala wiadomosc wtedy podczas wyswietlania nadrzędnych odpowiedzi - ta jedna konretna wiadomosc sie juz nie wyswietli.
- zastanowie sie tu cz nie nadpisywac jednak caly czas contenta wczesniejszymi contentami.
gdyby ktoś chciał zobaczyć jak to wyglada w realu to zapraszam do zarejestrowania sie na mojej stronce www.kosmosnews.pl - przetestowania.