The technology is mature

Around a year ago, I had a vision of a problem database(it's like wikipedia for problems). I made a prototype on top of Drupal.
It was nice, but there are many problems, one of them is to extend the attribute of every type of problem. This is not a difficult task. Drupal's CCK fixed this up rather nicely.
The relations between every problem are hard to map out. Soon I found Drupal's limit, and abandoned it for the project.

I try to write my own program for it. I found in order to make each type of problem have flexible set of attributes, I have to re-implement Drupal's CCK in my program. There must be a better way. In the end I'm convinced that a relational database doesn't suit my need, because of following reasons.
1. Each set of problem can have different set of properties. Some doesn't present in other .
2. Relational database are horrible for graph structures. In fact, relational database are horrible for any structure that can't be presented as a table naturally.

Then I found CouchDB and MongoDB. Both are document databases, it address problem 1 by schema free design. Problem 2 it cannot take care naturally, thus I have to write the code to handle the graph structures. It's still going to be slow.

Just today, I found there are graph databases. Like neo4j. neo4j store everything as graphs. The relations are mapped out as graph in the database. It is also schema free.
It addressed both problem 1 and 2. Awesome.

Looks like I got everything to build the thing I wanted. Hmm... The technology is as mature as I need.


Comments

Anonymous's picture

Neo4j CMS example

Hi there,
we put out a simple CMS-like graph, modeling content and security on different level, typical for CMS:es here if that is of interest ...

Post new comment

  • Allowed HTML tags: <img> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <span> <fn>
  • Lines and paragraphs break automatically.
  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Mathematical equations and graphs can be added between [tex] and [/tex], [graph] and [/graph] tags.
  • Textual smileys will be replaced with graphical ones.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Honey Pot that kill bots