Come mostrare liste / prodotti in base al profilo / preferenza dell'utente

1

Sto costruendo un servizio web in cui ho bisogno di mostrare diversi prodotti / elenchi a diversi utenti in base ai loro profili / preferenze. Ad esempio:

  • John, 24 / M, singolo: mostra l'elenco A e D;
  • Kyle, 48 / M, sposato: Mostra elenco B e C;
  • Jennifer, 22 / F, single: Mostra la lista C e F;

Questa è la prima volta che ho bisogno di costruire qualcosa del genere e sono un po 'persa, dal momento che non ho trovato nulla a riguardo, o almeno non conosco il termine corretto di tale funzione.

Sto usando PHP e MySql sul backend, quindi per questo stavo pensando di usare le tabelle per creare la relazione tra gli utenti e gli elenchi, ad esempio:

Considerando la struttura del database di cui sopra, avrò una tabella della categoria principale, in cui posso creare più tipi di categorie e quindi associare ciascun utente ad alcune categorie. Lo stesso vale per l'elenco dei prodotti. Successivamente, selezionerei, ad esempio, l'elenco con la maggior parte delle categorie condivise tra l'elenco e l'utente.

È ancora tutto teorico, dal momento che non so esattamente se questo è l'approccio migliore a questa situazione. C'è una tecnica migliore per raggiungere questo risultato? Finché posso ancora usare PHP e Mysql posso passare a qualsiasi altro metodo. Voglio solo ottenere il risultato atteso nel miglior modo possibile.

    
posta celsomtrindade 24.06.2017 - 04:39
fonte

1 risposta

1

Il tipo di funzione che stai cercando

Questo tipo di funzionalità riguarda la personalizzazione . Ci sono diversi approcci:

  • personalizzazione esplicita, quando l'utente seleziona se stesso l'elenco che desidera sottoscrivere
  • personalizzazione basata su regole, quando alcune regole ben definite definiscono gli elenchi da presentare
  • personalizzazione dinamica, quando gli algoritmi definiscono gli elenchi da presentare o addirittura creano l'elenco per ciascun utente in base a qualche sistema di raccomandazione , o profilazione o algoritmi di apprendimento .

Dalle tue espianti, comprendo che gli elenchi sono predefiniti e che sei nel contesto di una personalizzazione basata su regole.

Come implementarlo

Lo schema DB consente di associare un utente a una o più categorie e ogni categoria a uno o più elenchi. Questo è molto flessibile. È pratico se si hanno molte liste per ogni categoria, se si ha un manager marketing che mantiene gli elenchi da presentare a ciascuna categoria e, più in generale, se si dispone di più comportamenti e regole dietro le categorie rispetto agli elenchi.

Ma richiede di gestire le categorie. Se questo è un problema, è possibile appiattire lo schema e avere una semplice tabella di associazione n in relazione agli utenti con elenchi.

Un altro punto da considerare sono le regole. Se le categorie o gli elenchi sono corretti, potresti fare un po 'di hard coding. Lo svantaggio è che ogni volta che vengono aggiunti nuovi, è necessario aggiornare il codice. Quindi un'alternativa interessante potrebbe essere quella di avere una sorta di regole configurabili, che consentono di definire e combinare le condizioni sulle proprietà dell'utente per determinare la categoria. È quindi possibile applicare queste regole ogni volta che l'account utente viene aggiornato.

    
risposta data 24.06.2017 - 15:19
fonte

Leggi altre domande sui tag