I am building an application for comparing two or more songs. We have millions of songs. Currently we have access to raw data files (form a company like soundcloud) consisting of
1) Daily Users.csv with new signups
2) Daily Tracks.csv with new songs released
3) Daily streams.csv with today's streams.
For my application, the input will be two or more songs which has to be compared. The songs will be compared based on the data of users who listen to the songs. For the database design, I am thinking of relational database with
1) One Table for for users data
2) One table for tracks data.
3) Millions of tables; one for each song. The reason for this is that on query, it will be very easy to pick up relevant tables and compute statistics for each table.
Moreover, for a particular song, for a particular user, we want to store ordered time series data of the source of stream ( collection, album page, search). I am thinking of storing it as a json in Stream Source field in Song_ID tables.
Is it a good relational database design? Or should I switch to non relational databases? In that case which database would you suggest?