Hi everybody, My name is Bjorn Wijers and I recently started to play with couchdb. It's a very interesting project and I would like to use it to rewrite an older project called Simuze[1], but I wonder if couchdb would be the right tool for the job. Perhaps some of you can help me out in understanding the pro's and con's of using couchdb for this?
Simuze is musicplatform (website) for musicians and music fans by non-profit Stichting (=Foundation) Open Media. Artists can upload their music under a Creative Commons license of their choosing and music lovers can download these songs from the site. It was built quite some time ago in PHP and MySQL. The basics in this application are: - users - profiles (might be multiple per user, since a user may have more than one artist persona) - media files (images and audio for now) - media collections (such as a playlist or album) - ratings (every media file or collection) - tags (everything) Our objective is to rewrite Simuze in such a way that we can distribute it as an 'easy' to install webapplication under a free/open-source license (Affero GPL). We would like to connect all the different Simuze installs (replication would be very helpful for this, I guess) and create a distributed free (as in CC licensed and PD) music web. Think of it as a non-suck MySpace built by musicians ;) Some questions that I have are: 1) Would this type of application be suitable for couchdb or is this better suited by using a RDBMS? 2) Could we use the attachment feature for adding media files (FLAC or WAV or AIFF files roughly 50 MB per file) to couchdb? Or is this not advisable given the size of the files? The reasoning behind this is that by using replication we can easily backup the whole system or setup an another node of it. Therefor having everything in one place seems like a good idea? 3) In a RDBMS such as MySQL I can use foreign keys to preserve data integrity. In other words I can delete the user and due to the foreign keys 'automatically' remove its profile(s), uploaded media etc. How would one solve this with couchdb? Thanks for reading this rather lengthy email. Looking forward to the thoughts and comments on this. All the best, grtz BjornW [1] http://www.simuze.nl -- met vriendelijke groet, Bjorn Wijers * b u r o b j o r n .nl * digitaal vakmanschap | digital craftsmanship Concordiastraat 68-126 3551 EM Utrecht The Netherlands phone: +31 6 49 74 78 70 http://www.burobjorn.nl