Mysql
 sql >> Database >  >> RDS >> Mysql

Progettazione del database del motore di raccomandazione?

Qualsiasi database relazionale dovrebbe essere utile per archiviare dati grezzi come elenchi di brani, elenchi di utenti, preferenze di brani degli utenti.

Penso che scoprirai che un database relazionale (e SQL) non è eccezionale per archiviare le varie strutture di dati che il tuo strumento di raccomandazione costruirà. Il tuo motore di raccomandazione probabilmente creerà dati che non hanno davvero bisogno di essere nelle tabelle e manipolarli per l'archiviazione in un database relazionale potrebbe essere solo un lavoro sprecato.

Basta essere consapevoli di ciò che stai facendo e non perdere tempo a inserire cose in un database SQL se ti sembra sbagliato. Forse valuta l'utilizzo di un database orientato ai documenti come MongoDB .

Il suggeritore che ho scritto di recente è in realtà un processo server Java che legge i dati grezzi da MySQL, fa tutto il suo lavoro in memoria e fornisce dati di raccomandazione alla mia applicazione tramite un'API HTTP. Non mi sono nemmeno preoccupato di memorizzare i dati dei consigli in modo permanente poiché possono essere rigenerati.