Friday, November 04, 2005

Synaptic Silliness

OK. So I'm going to implement a few more Things: pain, ideas, projects, people and events (more detail on these Things coming soon).

These Things will be stored in a database. Now, I could do it the traditional relational way ... many-many relationships between projects and people etc. But maintaining the relationships between entities in a database adds an extra implementation tax to the system that is paid regularly in the form of constraint checking, coding for update anomalies, transaction checking, locking and the need to maintain many-many relationship tables (i.e., referential integrity).

Hmmm ... I want an easy life. I'm also keen to try something new.

I've decided to associate Things in the database a bit like our brain does. Cognitively speaking, the more a memory engram fires around the synaptic gaps of our brain the more indelible the synaptic trail becomes (emotions help too). Hmmm ... maybe the only associations that really count in the database are the ones that 'fire'.

So I've decided to associate Things in the database by processing the trail. An "Associator" will analyse the trail for associations between Things. You can think of this as a many-many table for all the entities in your database.

The associations table records the associations between Things so you can afford to forget them.

0 comments: