Piccolo social network...amicizie.

di il
2 risposte

Piccolo social network...amicizie.

Salve
Per impratichirmi con php sto cercando di creare una piccola comunità in php in cui vorrei inserire alcune caratteristiche dei social network.

Ho alcuni dubbi...

Per formalizzare le relazioni di amicizia tra gli utenti ho creato una tabella di DB in questo modo:

IDutente IDamico Amicizia
52 54 0
54 47 1
42 54 1
46 52 0
51 47 0
42 46 0

Dove i due numeri rappresentano chiavi esterne collegate alla tabella dei nomi utenti, e sotto il campo amicizia ci va un numero (1 se l'amicizia è accettata - 0 se è pendente).

Come si vede alcuni numeri compaiono sia nella colonna di destra sia nella colonna di sinistra (a seconda di chi ha richiesto per primo l'amicizia)...
ad esempio:
52 54 0
46 52 0
E' necessario creare anche le relazioni opposte? 54-52 e 52-46 (anche se mi pare ovvio che se A è amico di B, è ovvio che B sarà a sua volta amico di A)?


Volendo, ad esempio, creare una pagina che mostri tutti gli amici di un dato utente (con il relativo username) come potrei fare?
Posso fare un join doppio con la tabella dove ho gli username, in modo che mi sostituisca l'IDutente e l' IDamico con i relativi username?

inoltre, dato che sto cercando gli amici dell'utente "52", dopo l'opportuno SELECT,è chiaro che una delle due entrate di ogni riga (ma non so con certezza quale delle due) sarà 52 stesso; per poter fare la lista dei suoi amici avevo pensato di creare un ciclo in php che mi controlli entrambe le "caselle" e mi visualizzi quella delle due che non contiene il numero "52", c'è forse una maniera più diretta, magari una funzione che mi sposti tutti i "52" da una parte e tutti i suoi amici dall'altra?

Qual'è la maniera piu' semplice a vostro parere per nascondere alcuni dati ai non amici?
creare una variabile di sessione "Amico" che viene configurata vero/falso ogni volta che l'utente visualizza il profilo di qualcuno?

2 Risposte

  • Re: Piccolo social network...amicizie.

    Ciao alcor, io iniziarei col mettere nella tabella delle amicizie i campi:
    - data richiesta
    - data accettazione
    - IP richiesta
    - IP accettazione

    In caso di contestazioni, problemi e statistiche queste informazioni ti torneranno utilissime.
    Inoltre dovresti gestire e storare le informazini relative alla disattivazione di un amicizia che se vuoi gestire in maniera professionale non corrisponde all'eliminazione fisica del record nella tabella.
    Corrisponde invece all'eliminazione logica...banalmente puoi inpostare il campo Amicizia al valore -1 (ip e date anche per questo caso non fanno mai male)

    Per quanto riguarda invece la ricerca degli amici di A (id=52), esistono diverse soluzioni ma basandomi sulla tabella in questione potresti risolverla con una query come questa:
    select IDamico as IDamico_trovato from la_tabella where IDutente = 52 and Amicizia  = 1
    union
    select IDutente as IDamico_trovato from la_tabella where IDamico = 52 and Amicizia  = 1
    Fammi sapere come procede..
  • Re: Piccolo social network...amicizie.

    Salve a tutti,

    Io vorrei creare una specia di social network personale. Perchè quello di fb mi sta iniziano a stare antipatico. Ma anche per pratichirmi con il php & company. Allora innanzi tutto vi dico subito cosa ho fatto, così chiariamo subito a che livello sto. Allora, ho fatto una tabella utenti, dove si andranno ad iscriversi chi visita il sito. La tabella utenti è composta nel modo seguente:

    Nome tabella: utenti

    [PHP]

    id AUTO_INCREMENT
    cognome varchar(30)
    nome varchar(30)
    username varchar(30)
    password varchar(255) caratteri da inserire max: 8 o 16 non ricordo
    autorizzato eum('0','1') default 0 dove: 0 = accettata iscrizione 1 = rifiutata iscrizione

    [/PHP]

    Poi, ho creato una tabella immagini, dove dovrebbero essere inseriti solo il nome dell'album con le relative immagini (richiamabili tramite la memorizzazione del link nel db);

    La tabella si chiama immagine ed è la seguente:

    [PHP]
    Album varchar(30)
    Immagine varchar(255)
    [/PHP]

    E come tabelle sono finite. Dopo di che ho creato in php con molta fatia la pagina d'iscrizione. Con i doppi controlli d'inserimento dati per due campi corrispettivi ossia sono:

    1) Password

    2) Rip-Password

    3) Email

    4) Rip-Email

    Con tutti i carismi di controlli di scrittura email corretta, mancanza di campi vuoti e presenza di eventuali email nel db.

    Dopo, ho creato la pagina di login e password. E una volta che entri, hai la tua pagina riservata con scritto benvenuto pincopallino. La tua ultima visita è stata (tramite cookie). Ora purtropp non so più come andare avanti. Mi potete dare una mano ???
    Vorrei innanzi tutto poter aggiungere delle immagini e ancora su questo ci sto lavorando ma senza ottenere alcun risultato positivo, vorrei integrare la ricerca delle amicizie (come fa fb). E questo è un punto interrogativo. Nel senso, la ricerca delle amicizie, avviene solo all'interno del db utenti ???? Oppure anche all'esterno ??? Per ora mi fermo, sperando che qualche buon anima pia mi possa dare consigli e aiuti. Grazie aspetto vostre risposte.
Devi accedere o registrarti per scrivere nel forum
2 risposte