What CMS can I use to make a web-based database?
September 12, 2011 4:30 AM   Subscribe

Help me make a website which is a database, without writing a whole new CMS.

This seems an impossible question to Google, because "database-driven website" is such a common phrase, but also so generic.

For the purposes of simplifying what I want, let's pretend that I want to make a database of software titles for a certain platform. So I'll want a table of "Publishers" and I'll want a table of "Products", and each Product will be associated with a Publisher.

I want each Publisher to have a web page describing the publisher, and containing a list of products that publisher makes. Likewise, I want each product to have its own page.

(This is a simplified model of what I really want, but close enough.)

But I only want to design the "Publisher" page, and the "Product" page, *once*. I want to be able to make a template and have it just fill in the details from the database.

It sounds so mind-numbingly simple, but I don't want to write a whole new CMS. I assumed that Drupal would do the job but astonishingly there seems to be no way to do this would adding a phalanx of extra plugins.

I must be missing something obvious.

What CMS should I be using?
posted by Mwongozi to Computers & Internet (15 answers total) 13 users marked this as a favorite
Best answer: Sounds to me like what you're after is a framework. There are many available, each with their own advantages. Take a look at CodeIgniter (PHP) or Ruby on Rails to get you started.
posted by Nick Jordan at 4:33 AM on September 12, 2011

This is actually something you can do using Wordpress by using custom taxonomies ("categories"), custom post types (actual content) and custom fields. Wordpress also supports the creation of additional user roles to you can control what publishers can do.

I used the approach outline above to create a recipe site where each post was of the type recipe and had a taxonomy with stuff like italian food, cheap food, vegetarian food, etc. I used custom fields for stuff like recipe author, URL to original recipe page, etc.

The added advantage of going with Wordpress is that you get a very mature product with tons of plugins and community support.
posted by Foci for Analysis at 4:49 AM on September 12, 2011 [2 favorites]

Best answer: There may be a couple of extra modules you need to make it polished, but you should be able to get most of the way with just Drupal 7 + Views.

Your products and publishers would be separate content types. One of the fields in product would be a node reference to the publisher.

Your Publisher and Product pages could be designed as Views with the publsiher id's/ product id's as an argument to show the relevant information.

Which part couldn't you do when you tried Drupal before?
posted by Gomez_in_the_South at 5:06 AM on September 12, 2011 [1 favorite]

I personally don't use it in my environment but I came in to throw in a vote for Ruby on Rails
posted by zombieApoc at 5:30 AM on September 12, 2011

You can certainly do this with both Wordpress and Drupal quite easily. If you don't want to use plugins, you'll going to have to get your hands dirty with a little PHP. I think most modern CMSs could handle something like this very easily, it's just a matter of understanding their particular way of saying it.

If you did want to roll your own CMS, I've worked with people who've successfully used CodeIgniter to rather quickly build something far more complex than what you're asking for, and obviously Ruby On Rails also often used for this kind of thing.
posted by Magnakai at 5:34 AM on September 12, 2011

I actually tried out a couple of PHP web frameworks for my recipe site and Code Igniter was a clear winner simply because it was so easy to set up and use. Having said that, I decided to switch from code igniter to Wordpress after realizing I still had to implement tons of functionality that Wordpress provided out of the box.
posted by Foci for Analysis at 5:48 AM on September 12, 2011

Best answer: It sounds so mind-numbingly simple, but I don't want to write a whole new CMS. I assumed that Drupal would do the job but astonishingly there seems to be no way to do this would adding a phalanx of extra plugins.
Just to make clear, That's pretty much the Drupal approach to lots of stuff. It provides a baseline structure for content (ie, you can make a "publisher" content type and a "book" content type and so on, but you then need to drop in a "reference" plugin to connect the two together and an "ISBN" plugin to store the ISBN, and the Views module to build lists of them.)

Not saying that you SHOULD use Drupal, but the reliance on plugins for that kind of stuff is by design.
posted by verb at 6:15 AM on September 12, 2011

I use PHP which is pretty easy to code for a non-code-monkey kind of guy and MySQL for the database.
posted by JJ86 at 6:31 AM on September 12, 2011

What Gomez_in_the_South said.
posted by bricoleur at 6:37 AM on September 12, 2011

What bricoleur said.
posted by Blake at 7:47 AM on September 12, 2011

Best answer: A CMS is too high level for you because a CMS is largely just a framework where the database schema is already established, and the point of a CMS is that the present schema is what you want to do. If you want to do something different, then you're wading through a lot of pre-built schema that gets in your way.

For PHP, use Code Igniter. If you're not limited to PHP, Python/Django or Ruby on Rails will be much better. The only reason to stick with a CMS in this case is if you want a lot of the CMS functionality as well after you've somehow achieved your basic schema implementation.
posted by fatbird at 8:17 AM on September 12, 2011

Do you even need a CMS for this? It sounds like you may be better served by a web-based MS Access clone. I'm not intimately familiar with it, but something like Zoho Creator may be up your alley.

If you're not doing anything fancy, and want to write/host your own code, this seems like it'd be fairly easy to rattle off in an afternoon with plain PHP/mySQL, even for an inexperienced developer.

One table for products, another for publishers. Use JOIN statements in your SQL queries to tie everything together.
posted by schmod at 8:24 AM on September 12, 2011

Best answer: You're asking for Django. Connect it to your database, design the templates, add about 5 lines of code and you're done. It takes about 30 minutes total.
posted by gakiko at 10:04 AM on September 12, 2011

I'm not sure what you're comfortable with (languages, etc) and I no expert on what's the best choice for this, but for myself I'd use Silverstripe.

This sounds like it would be pretty basic for something like SS so I think if you can find a decent example, it'd be pretty quick to alter it and get it up and running.
posted by wintrymix at 7:48 PM on September 12, 2011

Response by poster: Thanks for all your advice, I'm going to give Django a whirl.
posted by Mwongozi at 3:27 AM on September 13, 2011

« Older Opening the Pandora Braclet Box   |   No Suh!!! I can't find this shirt nowhere! Please... Newer »
This thread is closed to new comments.