Toute base de données relationnelle devrait être bonne pour stocker les données brutes comme les listes de chansons, la liste des utilisateurs, les préférences de chansons des utilisateurs...
Je pense que vous constaterez que les bases de données relationnelles (et SQL) ne sont pas idéales pour stocker les différentes structures de données que votre conseiller construira. Votre moteur de recommandation créera probablement des données qui n'ont pas vraiment besoin d'être dans des tables et les manipuler pour les stocker dans une base de données relationnelle peut être un travail inutile.
Soyez simplement conscient de ce que vous faites et ne perdez pas de temps à mettre des éléments dans une base de données SQL si cela ne vous semble pas correct. Peut-être envisager d'utiliser une base de données orientée document comme MongoDB .
Le recommandeur que j'ai récemment écrit est en fait un processus de serveur Java qui lit les données brutes de MySQL, effectue tout son travail en mémoire et fournit des données de recommandation à mon application via une API HTTP. Je n'ai même pas pris la peine de stocker les données de recommandation de manière permanente puisqu'elles peuvent être régénérées.