Per avere un riferimento, qui è una domanda sul SO che ho chiesto di recente che è rilevante a questa domanda: How to model Friendship relationshipsIn un ambiente di social network, quale sarebbe il modo più semplice per verificare le amicizie a livello globale?
Su questa domanda, abbiamo capito un modo per visualizzare le notizie elementi del feed solo se postato da amici. Tuttavia, ciò di cui ho bisogno è un consiglio su come verificare l'amicizia in un modo più dinamico in modo che possa essere utilizzato in diverse funzioni del sito.
Ad esempio, ho appena installato un sistema di commenti, che consente agli utenti di pubblicare commenti sui post di notizie. Tuttavia, questo non è limitato agli amici, e dovrebbe essere (e in seguito dovrebbe essere reso opzionale dall'autore del post).
La pubblicazione di notizie solo da amici era leggermente diversa perché stavo ricevendo dati direttamente dal database e utilizzando le sottoquestazioni SELECT
per ottenere solo i post dagli amici dell'utente corrente. Tuttavia, nell'esempio del commento, voglio solo visualizzare il modulo di commento post se la persona è un amico. In realtà non sto prelevando nulla dal database per selezionare, ordinare e visualizzare.
Conoscere problemi come questo sorgerà molte volte in tutto il sito, quale sarebbe il modo più semplice per verificare l'amicizia? Potrei in qualche modo richiamare tutti gli ID utente di amici dal database in un array di sessione di qualche tipo e quindi fare unoif(in_array($friends))
ogni volta che ho bisogno di determinare se la persona in questione è un amico dell'utente attualmente connesso? In cima alla mia testa, sembra che funzionerebbe bene, ma vorrei prima il tuo input.
La domanda che ho collegato sopra spiega come funziona la mia tabella di amicizia, nel caso in cui mi aiuti ad aiutarmi in questo.
'MY_DATA_ACCESS_LAYER.IS_FRIEND (my_id, other_id)' - Utilizzare il database. Adoro il database. Preoccupati per "altre cose" più tardi. (Un'estensione banale è far sì che ci siano più ID da elaborare contemporaneamente: il punto è: se è nascosto nel DAL, non importa e quando - ma davvero * se * - le prestazioni * sono * un problema ci sono molti modi per affrontarlo.) –
@ pst, ti dispiacerebbe spiegarmelo un po 'meglio? Che cosa è esattamente "MY_DATA_ACCESS_LAYER.IS_FRIEND (my_id, other_id)" e come utilizzarlo? Puoi fornire un esempio? – vertigoelectric
Fa parte del DAL (Data Access Layer) e "usa il database". Il nome è atroce e fu scelto per distinguersi. Strutture diverse faciliteranno diversi approcci di DAL, ma sembra che questo sia già presente: cioè, * non * preoccuparsi della sessione o delle cose in_array.Solo preoccuparsi di "limitare l'utilizzo ban banale" quando esiste un caso d'uso delle prestazioni * comprovato * che non soddisfa i requisiti. –