Which database should i use for my DJ set planning software?
Hi, i want to develop a software that lets DJs plan a set (i.e. playlist) and i'm wondering if graph databases are the right way and if yes, which one to pick.
The workflow is that the software automatically reads all tracks from the DJ software on the computer and the DJ has to tell the software which tracks mix well together. These links are called "transitions" and contain some data like difficulty grade, quality rating and notes.
The software should then assist DJs when selecting tracks (or specifically the next track) for a playlist by considering the "non-repeating transition depth" of a given track.
In an RDBMS (SQL) i'd need to use
WITH RECURSIVE
to accomplish something like this.
There should also be query options for considering the rating of the transitions, i.e. sort suggested next tracks by "most tracks to follow up with" (excluding any tracks already in the playlist!) or sort them by highest average rating with at least X number of tracks in a valid transition chain.
I hope i could illustrate what i'm looking for. I'm a web developer and want to build this project using Node.js as the runtime and writing the code in TypeScript, but i can live without type helpers (like Prisma generates for example). I'm also not afraid of writing raw queries like i write raw SQL occasionally. A query builder is nice but not required. Also there should be a simple docker container to set up the database for development unless it's a serverless DB like SQLite.
Should i be using a graph database for this project or should i stick with RDBMS / SQL?
If i should go with a graph database, which one?
Thank you for any advice!Solution:Jump to solution
Sorry we missed this question. I think I could see how a graph could fit here. It seems like a sensible use case. As for the graph database to choose, i tend to almost always suggest that If you are new to graphs you should just start with TinkerGraph. It will help you get started with the least amount of pain. Once you understand it, learn some Gremln and get to know the features and capabilties of other graph databases then you can make the switch. For the most part, you should be able to make...
2 Replies
Solution
Sorry we missed this question. I think I could see how a graph could fit here. It seems like a sensible use case. As for the graph database to choose, i tend to almost always suggest that If you are new to graphs you should just start with TinkerGraph. It will help you get started with the least amount of pain. Once you understand it, learn some Gremln and get to know the features and capabilties of other graph databases then you can make the switch. For the most part, you should be able to make that switch from TinkerGraph without too much change to your Gremlin code. Depending on your requirements, you might even find that TinkerGraph suits your case well enough and you can stick with it.
@spmallette thank you so much for your reply! i will check out TinkerGraph :)