Cytat(IceManSpy @ 24.02.2011, 23:42:49 )

Każdy użytkownik musi mieć unikalne ID, które zapisujesz w bazie.
Nie musi.
Jeśli w tabeli istnieje wartość za pomocą której można unikatowo zidentyfikować użytkownika, np. jego login lub data rejestracji, lub kombinacja dwóch, to po jaką cholere dopychać jeszcze uniqId.
To jest jeden z najczęstrzyszch błędów popełnianych przez "projektantów" baz danych - daja auto-icrement dosłownie wszędzie..
Pole auto-icrement dodajesz kiedy nie ma możliwości unikatowego zidentyfikowania wiersza bazując na innych kolumnach, a takiej identyfikacji wymaga projekt.
Oczywiście, jeśli projekt przewiduje takie coś jak prywatne wiadomości, to ID wydaje się być najlepszym rozwiązaniem, ponieważ zajmuje ono najmniej miejsca, a jeśli ma być często powtarzane w tabeli odpowiedzialnej za PW, to w celu uniknięcia nadmiarowości danych, będzie najlepszym rozwiązaniem.
Należy się jednak bardzo mocno zastanowić, czy np. kombinacja końcówki czasu rejestracji i końcówki numeru IP nie będzie lepsza.
Lepsze w sensie umozliwiające unikatową identyfikację, nie wymagające tworzenia dodatkowej kolumny w tabeli, nie zajmujące zbyt dużo miejsca.
Podejmowanie takich decyzji mozna przyrównać do przeciągania liny.
Osobiście mam w zwyczaju nie usuwać wierszy kiedy wiadomość zostaje usunięta przez użytkownika, zamiast tego nadaje właściwy status.
Ja bym to zrobił tak:
Kod
Od | Do | Wiadomosc | Status
---+----+-------------+------
666|997 | Siema zenek | 1
Status 1: wiadomość oczekująca na przeczytanie
Status 2: wiadomość przeczytana
Status 3: wiadomość usunięta
Status 4: ....
Status 5: wiadomość systemowa
Status 6: ...