Aquarionics Wiki


AFPHRID, the Alt Fan Pratchett Heroic Relational & Impossible Database

(This project is marked as “Closed”, meaning I’m not actively working on it, it’s considered “Finished”, or about as finished as it will ever be. Finished also means that occasionally I recode bits to make them better).

AFP is a newsgroup based around the life and works of Terry Pratchett. It’s also quite a bit more than that, in that it’s a community of likeminded - and occasionally non-likeminded - people who talk to each other, be it by online chat, the newsgroup itself, or Real Life. It has a number of conventions, including cats and chocolate, and you can find out much more at the lspace AFP page.\ AFP Relations

One of these conventions is that of Relationships. Once upon a time, someone saw a post that made them go “Oooooooh, nice”, and followed up with “Will you marry me?”. This developed into the current state of play, where we have afphiancee’s, afpsisters, wives, husbands (often these two are related, but not always) librarians and mice. Clearly, there needed to be a central repository where all this goes, that people can look at it.

Someone should do something.


Sitting in a database lecture sometime in 2001, I needed an example. I was being taught the therory behind databases, how they worked, and I needed an example to work though in my head to see if I understood it. And since they were relational database, I thought of relations, and of AFP. Then I drew out a form of relationships, normalised it, and did some specifications for how it would work.

Academic exercise, you understand. Like “How to kill the Hogfather

Then, one week in September, I got bored, found my old notes, and coded it. Afphrid, the heroic, relational (& impossible) database v1 was born.


In the beginning was AFPhrid, the Alt.Fan.Pratchett Heroic Impossible Relational Database. And it was designed by a person fresh out of Uni, and by golly did it show. And it ran for six months, and various hacks were put in place to make it work properly, most of which involving escaping strings.

When the new version of PHP was released, fixing a number of security holes, the old version of Afphrid didn’t work with it, and rather than make a bodge-job of repairing the complex system, its designer and coder, Aquarion, decided to rewrite it under the traditional banners of Truth, Love, and Not Using User Input For Primary Keys.\ Afphrid 2

Almost two months later, it was still unfinished, and Aquarion made a decision, this had to be working soon, otherwise it would be too hopelessly out of date. So he took some of the more radical database changes (that he hadn’t already implemented) and placed them into a fictional “Back Burner” state until the main system was finished, Put most of the less basic features (like cliques) into a “Stage Two” state, and got to work on getting the main system back up and running . It still isn’t - quite, but it’s closer. The future is bright, the future is an attractive green gradient.