Any relational database should be good for storing raw data, such as song lists, user list, user song preferences.
I think you will find that relational databases (and SQL) are not so good at storing the various data structures that your recommendations will develop. Your recommendation engine is likely to create data that does not have to be in the tables, and processing it for storage in a relational database can simply be wasted.
Just know what you are doing and donโt waste your time putting stuff into the SQL database if it feels wrong. Perhaps look at using a document-oriented database like MongoDB .
The recommender that I recently wrote is actually a Java server process that reads in raw data from MySQL, does all its work in memory and provides recommendations for my application through the HTTP API. I did not even begin to store these recommendations permanently, since it can be regenerated.
casey
source share