![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 22.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chcialbym aby w panelu user ktory sie loguje widzial ktore przeczytal wiadomosci a ktore nie. Nie przeczytane powinny byc pogrubione, cos na wzor systemow pocztowych.
Mam jedna tabele z userami i jedna z wiadomosciami. Mozna by uzyc osobnej tabeli do zapisywania id userai id przeczytanej przez niego wiadomosci w osobnym rekordzie lub poprostu utworzyc dodatkowe pole w tabeli z userami i tam po przecinku dodawac kolejne przeczytane wiadomsci. Nic innego jak na razie mi do glowy nie przychodzi (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Jesli jedna wiadomosc moze czytac wiecej niz jedna osoba najlepszy pomysl wlasnie zrobic osobna tabele uzytkownik, przeczytana wiadomosc. Jesli jedna wiadomosc - jeden uzytkownik to oczywiscie najlepiej zrobic przy wiadomosci bool przeczytana / nie przeczytana przez uzytkownika. Dawanie jakis wartosci po przecinku nie zalecam.. ewentualnie w postgresql jest cos takiego jak pole typu array mozesz sprobowac tym sie pobawic.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Mozna by uzyc osobnej tabeli do zapisywania id userai id przeczytanej przez niego wiadomosci w osobnym rekordzie Rozwiazanie dobre aczkolwiek zalecam pewną modyfikacje. W tej dodatkowej tabeli lepiej trzymac info o nieprzeczytanych wiadomosciach niz, tak jak proponujesz, o przeczytanych. W miare jakludzie beda czytac wiadomosci bedzie ci malec liczba rekordow w bazie a nie rosnac. Efekt wizualny dla frontendu ten sam. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 22.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
oczywiscie, tez o tym pomyslalem
THX |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
a nie można było by zrobić tak, że dodać jedną kolumnę do tabeli z wiadomościami o nazwie np. `czy` i domyślną wartością 1 ( nowa wiadomośc) . Jezlei ktoś ją przeczyta ( w pliku ktorym się czyta), wpisujesz UPDATE `wiadomosci` SET `czy` ='2' WHERE `id`='$id' ? Potem możesz wyświetlić np. 15 nie przeczytanych wiadomości ( 15 rekordów okreslonego użytwkonika z polem `czy` i wpisanym 1 )
Tak myslę, było by najlepiej EDIT : Nie zobaczyłem daty tematu, ale może komuś się przyda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował bialko0019 1.07.2009, 23:43:31 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 42 Dołączył: 12.08.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Twoje rozwiązanie jest moim zdaniem zbyt słabe. Lepszym jest jak ktoś wspomniał zrobienie dodatkowej tabeli dla nieprzeczytanych bo:
- można to podpisać pod wielu userów - łatwiejsze w modyfikacji ( nie wiem jak długo programujesz ale dodawanie kolejnych kolumn bo się wpadło na pomysł dorobienia czegoś to....maraton zakończony po 50 metrach) Poza tym robiąc left join dostaje się ładne dane tzn dodatkowa kolumna z null lub konkretnym id co jest dla nas pomocne:
Owszem rozwiązanie z dodatkową tabelką niesie ze sobą minus w postaci dodawania przy nowej wiadomości dodatkowego rekordu do tej tabelki, że nie jest ona przeczytana (lub wywoływanie triggera po insercie). Czym jednak ta drobnostka jest ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 23:01 |