A Family-Tree Database, Part 1

In order to display a large amount of information on the Toalster family, we'll need to store it some way that can be accessed, processed and presented automatically, and that means getting data into some kind of database and retrieving it in different ways. Here are some ideas I have about going about this.

First let's decide what requirements we want to make on this project:

  • Data should be stored in some way that's portable. It should be, in principle, be able to take all the data we have, store it on some medium like a USB stick, plug this into another computer and continue working with it and looking at it — provided this new compueter has the necessary programs.
  • There should also be some kind of data structure independent of special programs, so the data can be at least looked at on any computer.
  • Also there should be some way of adding data to the global collection that can be done by non-programmers. A GUI would be nice, but for the start I'll settle with simple text files that can be read, written and understood by anyone. Adding their contents can be done by programs that work at the press of a button, although writing these programs will be a specialis job.
flowchart LR
T([Simple text files])-->R[Program]-->D[(Database)]
P([Pictures])-->R
D-->R1[Program]-->H([HTML])
D-->R2[Program]-->F([PDF])
D-->R3[Program]-->G([Other formats])
  • One problem that most family-tree software seems to have is that it deals with tree only, usually involving monogamous people and containing only direct ascendants and descendants of one person. Life isn't that simple, and we want to allow for
    • people who are divorced or widowed and then re-marry and
    • relationships that connect people horizontally as well as vertically.
    A real example: My brother Patrick is married to Andrea, who has a son Leon from a previous relationship. I regard Leon as a member of my family, although he's not legally related to any Toalster, and there's no way to include him in a Toalster family tree (although he could be part of a Wagner family tree, since Andrea was born as a member of the Wagner family, but I'm not a member of that tree). So what we really need is not just a family tree, but a family net.

Deciding what data we want to include and how to represent them in a simple text file will be my first task.