![]() |
![]() ![]() |
![]() |
-Analka- |
![]()
Post
#1
|
Goście ![]() |
Witam
Mam tylko jedno pytanie (IMG:style_emoticons/default/smile.gif) Czy ten sposób jest optymalny dla średniej wielkości strony? Dziennie 200uu. Schemat bazy danych PM: -Id -Od (id usera) -Do (id usera) -Topic -Desc -Time (unix) -Status (0 - nieprzeczytana, 1 - przeczytana, 5 - nadawca) Przy wysyłaniu PM tworzy dwa rekordy jeden ma status 0 drugi 5 i tak wiem kogo jaka wiadomość. Więc można spokojnie usuwać ją z swojej skrzynki. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Po co dublujesz wpisy?
1. Gdy tylko to możliwe staraj się nigdy nie usuwać danych z bazy - oznaczaj je jedynie jako usunięte. W tym przypadku potrzebne będą Ci dwie dodatkowe kolumny wskazujące na datę skasowania przez nadawcę i odbiorcę, bądź nawet jedna typu SET jeżeli nie zależy Ci za zachowaniu daty skasowania. 2. Podobnie jest w przypadku oznaczania przeczytana/nieprzeczytana. Taka struktura bazy umożliwia Ci wykonanie bardzo prostego i głupiego systemu prywatnych wiadomości na wzór tego dostępnego na tym forum. Zauważ, że prywatne wiadomości najczęściej przyjmują formę konwersacji na dany temat, a nie kompletnie odseparowanych wiadomości. Powinieneś raczej dążyć do stworzenia bardzo prostego czatu, czegoś na wzór: Konwersacja: - id - nadawca - adresat - temat - status_nadawca (odczytana/nieodczytana) - status_adresat (j/w) - data utworzenia - data ostatniej aktywności - ... Wiadomość: - id - konwersacja - autor - treść - data utworzenia - ... Ten post edytował Crozin 26.12.2013, 18:39:29 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 280 Pomógł: 20 Dołączył: 12.12.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Spokojnie da radę. Utwórz tylko dobre pola (dla statusu możesz np. dać enum). Nie zapomnij o indeksach na polach z id użytkownika.
|
|
|
-analka- |
![]()
Post
#4
|
Goście ![]() |
Dzięki (IMG:style_emoticons/default/smile.gif)
A czemu enum? nie lepiej id INT(1) ? I tak samo dla pól które nie koniecznie są uzupełniane dać varchar?? zamiast text? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat A czemu enum? nie lepiej id INT(1) ? Bez znaczenia jeżeli chcesz przechowywać jedynie informację TAK/NIE. W momencie, gdybyś chciał przechowywać nieco więcej rodzajów informacji, np. TAK/NIE/MOŻE-TAK/MOŻE-NIE/itp. ENUM jest o tyle lepszy, że zamiast jakiś magicznych numerów 1, 2, 3, 4, 5... masz sensowną informację dla człowieka.Cytat I tak samo dla pól które nie koniecznie są uzupełniane dać varchar?? zamiast text? Jeżeli pole nie jest konieczne powinno być NULL-em. Co do różnicy pomiędzy VARCHAR, a TEXT: http://stackoverflow.com/questions/2023481...varchar-vs-text
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:47 |