Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    come si cancella un account utente?

    Vi pongo ancora una altra questione (sono alle prese con il mio primo forum).

    quando un utente elimina il suo account ho 2 strade:

    1- eliminare tutti i suoi dati personali ma mantenere il record con il nick, in questo modo tutto lo storico dei suoi messaggi del forum conserverà il suo nome, ma col tempo il db sarà pieno di nick non attivi e non riutilizzabili da nessuno.

    2- la seconda strada l'ho vista su alcuni social network (quindi con logiche diverse dai forum), in pratica si cancella definitivamente il record dell'account e tutti i messaggi inviati con quel nick vengono aggiornati con un valore del tipo "utente non più attivo", questo ovviamente comporta nel caso di una moltitudine di messaggi un update pesantissimo, ma rende disponibile il nick per una nuova registrazione e ripulisce il db da utenti fantasma.

    Cosa ne pensate?

  2. #2
    Non credo si tratti di un update pesante, a meno che questi abbia fatto 100.000 post

    Consiglio il secondo metodo (Comunque non sono d'accordo sul fatto di poter cancellare il proprio account a piacimento, potrei fare il danno e cancellarmi senza lasciare traccia, al limite permetterei di farne la richiesta, che poi verrà evventualmente approvata dal webmaster), basta quindi controllare, se non esiste tale account, scrivi "Non esiste +"

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194
    Io farei in maniera differente:

    - Inserirei su ogni utente uno stato "cancellato" quindi 1 campo a db che mi identifica se quell'utente ha cancellato l'account
    - Nel messaggi, quando ricerco lo username dell'utente verifico se è in stato cancellato e quindi scrivo "utente non più attivo"


    C'è anche un'altra questione utilizzando il metodo che ti ho proposto.
    Se l'utente si vuole iscrivere nuovamente al forum se in fase di registrazione fai un controllo sulla presenza di email ricordati di farlo solo su quelli dove il valore "cancellato" è diverso da SI.

    Invece sul login fai un controllo solo su quelli che hanno stato "cancellato" diverso da SI, mentre per quelli che hanno l'account cancellato gli dai un messaggio "utente non presente".

  4. #4
    Originariamente inviato da ardand
    Io farei in maniera differente:

    - Inserirei su ogni utente uno stato "cancellato" quindi 1 campo a db che mi identifica se quell'utente ha cancellato l'account
    - Nel messaggi, quando ricerco lo username dell'utente verifico se è in stato cancellato e quindi scrivo "utente non più attivo"
    Si ma rimarrebbe il fatto che lui non vuole avere account "immondizia" nel database

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194
    Allora fa un'altra cosa.
    Invece di andare a modificare tutti i post, quando un utente cancella il suo account registra l'id_utente in una tabella parallela:


    Tabella utenti_cancellati
    --------------------------
    id_cancellato (autoincrement)
    id_utente_cancellato

    Poi su ogni post del forum controlla se id_utentepost=id_utente_cancellato è fa vedere la scritta "utente non più attivo".

    che ne dici, è meglio?

  6. #6
    la soluzione di ardand è interessante, ma se un altro utente utilizzasse quel nick (disponibile dopo la cancellazione) si creerebbero dei problemi, quel nick sarebbe contemporaneamente attivo ma anche nella tabella dei nick cancellati, o no?

    inoltre tutti i messaggi del forum avrebbero una query più complessa (quindi più pesante), anche se di poco, moltiplicata per tutti i messaggi del forum, graverebbe sulle performance.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194
    Dipende come strutturi la tabella utenti e la tabella post_forum

    Io la tab utenti me la immagino così:

    id_utente
    nick
    password
    ecc.

    mentre la tab post_forum me la immagino così:

    id_post
    id_utente
    titolo_post
    testo_post

    Quindi se ad un certo punto elimino un utente nella tabella utenti (es quindi elimino anche il nick), mi ritrovo solo con i post che contengono nella tabella post il valore id_utente.
    Se quando cancello un utente popolo la tabella utenti_cancellati con l'id_utente eliminato, perchè non dovrei poter riutilizzare lo stesso nick?

    Es di contenuto tabelle:

    Io la tab_utenti me la immagino così:

    id_utente > 1212
    nick > andrea
    password > vattelapesca
    ecc.

    mentre la tab post_forum me la immagino così:

    id_post > 1
    id_utente > 1212
    titolo_post > ma che bello
    testo_post > ma che bello 2

    -----------
    Se elimino andrea con id_utente 1212 dalla tab utenti, nella tabella post_forum rimarrà 1212 nel campo id_utente, giusto?

    Se quando le elimino vado a scrivere anche nella tab utenti_cancellati

    id_utenti_cancellati > 1
    id_utente > 1212

    quando vedo il post se id_post == utenti_cancellati.id_utente allora metto "utente non più esistente" al posto di far vedere il tab_utenti.nick

  8. #8
    in questi giorni ho provato diverse soluzioni, anche quella di ardand, ma alla fine sono ritornato alla soluzione iniziale, quando un utente cancella il proprio account il suo nick muore con lui (ma il record rimane), la storia che ogni nick si porta dietro può essere cancellata da un db ma spesso non dalla percezione e dalla memoria degli utenti, cioè che per anni è stato "blu" non può diventare "rosso" per lo stesso nome.

    Sono benvenuti altri commenti o esperienze personali


  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194
    difatti ti do ragione. Io manterrei la storia di un utente mantenendo il suo nome nei post con la sola dicitura al di sotto (utente non più registrato).

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.