Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Seguire profilo utente stile Twitter

    Salve, sono nuovo del forum, e dopo tutte le guide utilissime del sito mi son trovato in difficoltà. Stò realizzando un sito in php per un esame ma purtroppo mi son bloccato! Mi è stato chiesto di implementare nel mio sito una funzionalità che permette ad utente di seguirne un altro in stile Twitter, ma non son riuscito a venirne a capo purtroppo!
    Spero qualcuno di voi possa darmi una mano!!!

  2. #2
    Ciao,
    provo a descriverti come ho fatto io, non è detto che sia il modo migliore.
    Nella creazione del modulo di registrazione oltre ad archiviare nel database i dati dell'utente che si sta registrando dovresti fare in modo che si crei in automatico una tablella con il nome e l'id univoco dell'utente stesso, con + o - i seguenti campi:
    id, nome utente, mail, tipo, e stato.
    Quando l'utente A sceglie di seguire l'utente B si devono poter archiviare i dati dell'utente A nelle tabella dell'utente B, come tipo dovrebbe essere follower(o seguace), e nella propria tabella i campi dell'utente B con tipo following. Lo stato servirebbe per le autorizzazioni, non so se devi fare in modo che il seguito autorizzi, nel qual caso quando decide di farlo dovrebbe andare a modificare lo stato nella tabella da inattivo ad attivo.

  3. #3
    Grazie mille pea rapidita nella risposta, io devo farlo proprio come hai detto te, senza autorizzazioni da parte dell'utente che viene seguito.. oggi o domani appena ho un momento provo se mi funziona o in caso contrario chiedrò altre delucidazioni :-D

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Uhm....
    secondo me si tratta di implementare tabelle di relazione.
    COn le tabelle di relazione(molti a molti) in questo caso puoi tracciare tutto, e nel caso collegare per tipologia tracciare data e se entrambi gli utenti hanno confermato.


    esempio

    tabella utenti
    id
    //DATI VARI


    tabella relazioni_utenti
    id_utente1
    id_utente2
    tipo_relazione
    data_creazione
    ultima_modifica
    stato

    chiave primaria : id_utente1,id_utente2,tipo_relazione


    COsi' potresti tracciare tutto quello che ti pare delle relazioni tra utenti.
    tipo_relazione mettilo int :
    0- amicizia
    1- lavoro
    2- gruppo
    // ETC... nel caso puoi aggiungere anche una colonna per tracciare i gruppi

    lo stato
    001- bloccata da user 1
    002- bloccata da user 2
    010- richiesta contatto da u1 a u2
    011- attivata (ue ha accettato)
    etc.....

  5. #5
    Originariamente da Virus_101
    Uhm....
    secondo me si tratta di implementare tabelle di relazione.
    COn le tabelle di relazione(molti a molti) in questo caso puoi tracciare tutto, e nel caso collegare per tipologia tracciare data e se entrambi gli utenti hanno confermato.
    beh, effettivamente questo metodo sembra mooolto ma molto meglio del mio.
    Con il mio metodo si crea in automatico una tabella x utente, (Pensa che all'inizio avevo pensato a 2 per utente, una per i seguaci per così dire, ed una per i seguiti, pensa che scemo che sono ), e con l'aumentare degli utenti aumentano anche le tabelle.
    In questo modo invece basterebbe una tabella, ma con tantissimi record.
    Cosa è meglio molte tabelle con pochi record o viceversa? Comunque credo che proverò il tuo metodo.

    Grazie mille .

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    In questo caso usa una tabella di relazione , e' normale che abbia tanti record, ma sono quasi tutti indici e chiavi esterne intere , non hanno problemi di prestazioni.
    Inoltre se ti serve pe progessto scolastico e' pure meglio poiche' in questo caso hai normalizzato la base di dati, e cio' e' sempre bene.

    Leggiti qualcos sulla normalizzazione di un database e vedrai che questa soluzione e' sempre consigliata quando hai relazioni molti a molti.

  7. #7
    Originariamente inviato da Virus_101
    Inoltre se ti serve pe progessto scolastico e' pure meglio poiche' in questo caso hai normalizzato la base di dati, e cio' e' sempre bene.
    No, lo studente non sono io, , lo studente credo sia simo.cross al quale avevo consigliato (male) il mio metodo .
    Comunque la cosa mi interessa lo stesso moltissimo e seguirò assolutamente il tuo consiglio che mi piace molto.

  8. #8
    Originariamente inviato da Virus_101
    Uhm....
    secondo me si tratta di implementare tabelle di relazione.
    COn le tabelle di relazione(molti a molti) in questo caso puoi tracciare tutto, e nel caso collegare per tipologia tracciare data e se entrambi gli utenti hanno confermato.

    esempio

    tabella utenti
    id
    //DATI VARI


    tabella relazioni_utenti
    id_utente1
    id_utente2
    tipo_relazione
    data_creazione
    ultima_modifica
    stato

    chiave primaria : id_utente1,id_utente2,tipo_relazione


    COsi' potresti tracciare tutto quello che ti pare delle relazioni tra utenti.
    tipo_relazione mettilo int :
    0- amicizia
    1- lavoro
    2- gruppo
    // ETC... nel caso puoi aggiungere anche una colonna per tracciare i gruppi

    lo stato
    001- bloccata da user 1
    002- bloccata da user 2
    010- richiesta contatto da u1 a u2
    011- attivata (ue ha accettato)
    etc.....
    Però pensandoci bene, per un modello tipo facebook il metodo è ottimo, solo che non ho ancora immaginato come potrebbe essere in ottica twitter, per esempio come si potrebbe indicare nel tipo di relazione che utente 1 segue utente 2 o viceversa o insieme?
    Nel mio, posso dire che utente2 è seguace o seguito. Mi sa che devo pensarci un pò.

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    DIpende dlla direzione che imposti.
    Prova semplicemente a rinominare come segue

    utente1 -> utente_da
    utente2 -> utente_a

    e hai la risposta, per quanto chiedi ti basta creare 2 relazioni,
    La prima indica che l'utente_da ha segue l'utente_a
    utente_da = 1
    utente_da = 2

    La seconda che l'utente_a segue l'utente_da
    utente_da = 2
    utente_da = 1

    Queste due righe nella tabella indicano un doppio collegamento tra i due utenti.

    P.S.
    QUesto tipo di tabelle ti consente di costruire strutture dati di tipo "grafo" in cui ogni nodo(utente) e' potenzialmente collegabile ad altri n nodi e viceversa, cosi' puoi implementare procedure di ricerca amicizie, chi sta seguendo chi etc.....

    Inoltre puoi costruire x grafi in base alla tipologia di collegamento.

  10. #10
    Effettivamente si, si potrebbe lavorare definendo ad esempio che utente1 sia sempre il richiedente ecc.. e definire ulteriori codici nello stato come indicavi prima tu, tipo
    cod. 12 utente 1 segue utente 2
    cod. 21 utente 2 segue utente 1
    ecc.
    Se la si ragiona bene, questa tipologia di tabella offre svariate opportunità.


    Grazie mille.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.