Visualizzazione risultati 1 fino 2 di 2

Discussione: Privacy post social network

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Question Privacy post social network

    Sono un pazzo.
    Sto cercando di creare un social network partendo da zero.
    Il codice è base e non ci sono algoritmi o cavolate varie.

    Vorrei chiedervi un consiglio per strutturare la gestione della privacy dei vari post pubblicati dagli utenti.
    Ancora non ho iniziato la programmazione, quindi posso cambiare qualsiasi cosa.
    Iniziamo dal sistema delle amicizie. C'è una tabella con un elenco degli ID degli utenti che aggiungono agli amici altri utenti. Quindi avremo: ID (ID dell'amicizia) | IDUtente1 (colui che aggiunge) | IDUtente2 (colui che viene aggiunto).
    Il sistema è come Google+, quindi se Utente1 aggiunge Utente2 agli amici, allora Utente2 potrà visualizzare i post di Utente1 senza doverlo per forza aggiungere agli amici.
    Passiamo alla pubblicazione dei post. Una colonna registrerà il valore di "Privacy": 1=privato, 2=pubblico.
    Se il post è pubblico, potrà visualizzarlo chiunque. Se è privato, potrà visualizzarlo soltanto chi è stato aggiunto agli amici. Nel caso di prima, se Utente1 pubblica un post privato, Utente2 potrà visualizzarlo perché è stato aggiunto agli amici. Viceversa, dato che Utente1 non è stato aggiunto da Utente2, non potrà visualizzare i post pubblicati da Utente2.
    Vorrei creare una pagina contenente tutti gli ultimi post di tutti gli amici (come la sezione "Notizie" di Facebook).
    Non ho idea di come fare. Ma soprattutto, sperando che questo social network diventi abbastanza utilizzato, vorrei che fosse sempre "veloce" ad eseguire le query, considerando che ci saranno moltissime righe in ogni tabella.
    Avevo pensato a qualcosa del tipo: "SELECT * FROM Post WHERE Privacy = 2 OR (Privacy = 1 AND UtenteAttuale = Amicizie.IDUtente2)". Funzione che ovviamente non esiste e che non so come scrivere. Praticamente seleziono tutti i post dove la privacy è uguale a 2 (poiché pubblica), ma anche i post dove la privacy è uguale a 1 (privata), considerando che l'ID dell'utente attuale (UtenteAttuale) dev'essere nella stessa riga dove IDUtente1 è uguale all'utente che ha pubblicato il post.

    Non sono stato chiarissimo, ma spero che mi capiate.
    Penso che comunque la query non dovrebbe essere un problema.
    Quello che mi preoccupa è il rallentamento nel caricamento delle pagine, ma vedremo...

    Grazie mille

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Grazie per tutte le risposte che mi avete dato. Senza di voi non saprei come fare

    Scherzi a parte, non saprei proprio come strutturare la query che ho scritto prima.

    Avevo pensato a qualcosa del tipo: "SELECT * FROM Post WHERE Privacy = 2 OR (Privacy = 1 AND UtenteAttuale = Amicizie.IDUtente2)". Funzione che ovviamente non esiste e che non so come scrivere. Praticamente seleziono tutti i post dove la privacy è uguale a 2 (poiché pubblica), ma anche i post dove la privacy è uguale a 1 (privata), considerando che l'ID dell'utente attuale (UtenteAttuale) dev'essere nella stessa riga dove IDUtente1 è uguale all'utente che ha pubblicato il post.
    Magari mi spiego meglio.
    Ho una tabella chiamata "UtentiAmicizie", contenente i valori "IDAmicizia" (che a noi non interessa), "IDUtente1" e "IDUtente2".
    L'Utente1 è colui che aggiunge agli amici Utente2.
    Poi ho anche la tabella "UtentiPost", contenente vari valori, tra cui "IDUtente" e "Privacy".
    Io non sono l'utente che pubblica un post (Utente1), ma sono Utente2, ovvero quello che è stato aggiunto agli amici da Utente1.
    Quindi posso visualizzare i post con UtentiPost.Privacy=1 e UtentiPost.IDUtente=UtentiAmicizie.IDUtente1.
    Quindi esiste UtentiAmicizie (IDAmicizia | IDUtente1 | IDUtente2) = 1 | 1 | 2.
    Se invece Utente2, che non ha aggiunto agli amici Utente1, pubblica un post con Privacy=1, Utente1 non potrà visualizzarlo poiché non esistono righe in UtentiAmicizie così: 1 (l'ID dell'amicizia, non importa) | 2 | 1 (IDAmicizia | IDUtente1 | IDUtente2).

    Spero di essermi spiegato meglio. Grazie sempre anticipatamente

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •