Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodatkowe pole czy osobna tabela archiwum, Problem z zaprojektowaniem systemu użytkowników
Riggs
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

Ostrzeżenie: (0%)
-----


Witam,
projektuję system obsługi użytkowników. Każdy użytkownik ma generowany unikalny login (oraz ID, wiadomo). Dodałem możliwość usuwania użytkowników ale potrzebuję wiedzieć przy generacji loginów jakie loginy są już wykorzystane. Rozważam 2 warianty:
a) dodatkowe pole w tabeli users typu boolean wskazujące czy użytkownik jest zarchiwizowany (brak możliwości logowania) czy też aktywny
cool.gif dodatkowa tabela w bazie zawierająca login użytkownika, jego stare id i inne poboczne informacje.

Potrzebne jest mi to do tego aby uzyskać informację o powiązanych z danym użytkownikiem operacjach.

Proszę o Wasze porady, nie potrafię określić czy użytkowników będzie w bazie mniej niż tysiąc czy też będą ich setki tysięcy wink.gif dlatego szukam optymalnego rozwiązania. Może do bazy z 10 000 rekordów nie warto w ogóle martwić się dodatkową tabelą?
Go to the top of the page
+Quote Post
kaminskp
post
Post #2





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 18.03.2008
Skąd: Olsztyn

Ostrzeżenie: (20%)
X----


Proponował bym w tabeli user pole status i wartośc 0 lub 1 jak się domyślasz to 0-zakaz dostępu 1-aktywny.
Lepiej informacje o urztkownikach mieć w jednej tabeli.
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


W większości przypadków dobrze jest za wszelką cenę unikać usuwania jakichkolwiek danych z bazy. Dodaj kolumnę deleted_at/archived_at typu DATETIME, która będzie zawierać datę usunięcia/zarchiwizowania obiektu, bądź NULL w przypadku gdy istnieje.
Go to the top of the page
+Quote Post
Riggs
post
Post #4





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

Ostrzeżenie: (0%)
-----


Ok, sposób Crozina podoba mi się (ze znacznikiem czasowym). Jeżeli potrzebował będę archiwizacji to się po prostu usunie stare rekordy które pole deleted będą miały != NULL
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:29