Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dylemat - ze sposobem zapisywania użytkowników
Forum PHP.pl > Forum > Bazy danych > MySQL
japolak
hej

mam takie pytanie.

powiedzmy ze robię stronke na której użytkownicy beda mogli sobie wrzucać jakies fotki..
zdjęcia beda dostepne dla odwiedzających.
i przy każdym bedzie informacja kto dane zdjęcie dodał..

co zrobic gdy użytkownik skasuje konto..
chce aby dalej widniała nazwa osoby która dodała zdjęcie.
ale także chce aby po kliknieciu na dana osobe (dodająca zdjęcie ) wyświetlił sie jej profil - wiec jesli profil bedzie usuniety to sie nic nie wyświetli..

problemem jest jeszcze to ze po skasowaniu konta inna osoba moze załozyc konto pod tym samym nickiem i wyjdzie na to ze on dodal te zdjęcia..


Co poradzicie?
vokiel
Dwa podejścia:
1. Kasujesz konto a wraz z nim wszystkie rzeczy, które użytkownik dodał. Wszędzie gdzie komentował czyjeś słit focie wstawia się napis "konto usunięte". Niszczysz każdy ślad jego istnienia.
2. Tak na prawdę nie usuwasz konta, tylko oznaczasz je jako usunięte. Co z tym dalej zrobisz to Twoja wola, zdjęć nie pokazujesz, w miejscach komentarzy wpisujesz kto komentował dodając info, że konto jest usunięte. Nikt nie stworzy nowego konta, bo te ciągle będzie w bazie (konta rozróżniaj po mailu a nie po nickach - tego samego maila druga osoba raczej mieć nie będzie).
japolak
co do opcji 2 .

czy to będzie zgodne z prawem? przechowywanie danych bez zgody użytkownika..


zastanawiałem sie jeszcze taki sposób>

tabela z uzytkownikami

  1. CREATE TABLE IF NOT EXISTS `user` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `login_user` char(16) NOT NULL,
  4. `password` char(40) NOT NULL,
  5. `email` char(50) NOT NULL,
  6. `code` varchar(32) NOT NULL,
  7. `date` datetime NOT NULL,
  8. `status` tinyint(1) DEFAULT '0',
  9. `rank` int(2) NOT NULL DEFAULT '1',
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


tabela ze zdjeciami

  1. CREATE TABLE IF NOT EXISTS `user_photo` (
  2. `photo_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_user` int(10) UNSIGNED NOT NULL,
  4. `login_user`char(16) NOT NULL,
  5. `album_id` int(10) UNSIGNED NOT NULL,
  6. `id_cat` int(10) UNSIGNED NOT NULL,
  7. `file_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
  8. `photo_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
  9. `photo_desc` text COLLATE utf8_polish_ci NOT NULL,
  10. `add_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  11. `counter` int(10) UNSIGNED NOT NULL,
  12. PRIMARY KEY (`photo_id`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;



i teraz.. moze zrobić tak ze zapisując zdjęcia zapisuje sie aktualna nazwa użytkownika.. a jesli chce sie odwołac do teo użytkownika pobieram user.photo.id_user porównujac go z user.id .. i jesli w user.id bedzie wykasowana cała zawartość poza id to bedzie mozliwość rejestracji konta pod tym takim samym loginem.. przykładowo - "zbyszek" to poprowadzi go używajac id - i wyskoczy ze kotno jest usuniete - mimo iż uzytkownik o takim loginie bedzie istnial..

pole id chyba bardziej bedzie sie oplacac dodac zamiast kozystać z email

co o tym sądzisz?

ps. piszac odpowiedz - coraz bardziej uświadamiam sobie ze znam rozwiazanie problemu:) ale moge sie mylic
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.