Database design recommendations recommendations?

I am currently working on recommendation systems, especially for audio files. But I'm starting this topic. I am trying to create a database using mysql first, but I cannot decide how to do this. This is basically a system that users create a profile, and then searching for music and systems recommend them music similar to what they like.

  • which database should i use? (Mysql comes to mind as a first guess)
  • this is a web project and then with the mobile side. What technologies should I use? (php, android platforms ...)
  • what are the pitfalls of this project.
  • how to create a database for a system like this?
+2
mysql database-design recommendation-engine audio
source share
3 answers

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.

+4
source share

Go read "Collective Intelligence Programming . " They have a number of subtle algorithms for recommendations in Chapter 2, Recommendations.

+4
source share

Well, this is a vague question, but I will do my best to answer:

  • MySQL is a reliable database, and therefore PostgreSQL . Both are free and open source. MySQL is more widely supported and a little easier to use, but Postgres has some very interesting features and functionalities that are worth taking on. WikiVS has a good comparison of the two.
  • Smartphones have the best and best browsers. Use PHP or ASP.NET (whatever your convenience), and then create a mobile site that looks better at lower resolutions.
  • There are many. First of all, how good is your recommendation algorithm? Secondly, storing audio files can quickly eat up storage space. What is your scaling plan? Third, how well do you know database design? Can you create a large, hefty database and index it correctly? If not, you need to start reading everything you can on indexes and database design. Fourth, this is a software project, and they always have pitfalls. The best you can do is post it here when problems arise, and we can always see what wonderful StackOverflow people can do to help.
+3
source share

All Articles