Menu

Home

Andreas Nicolai

About QStammBaum

QStammBaum is a software to create/plot/print family trees and ancestor diagrams. It is targeted toward the typical home user (e.g. retired parent) who wants to collect information for the family, include photographs, create diagrams and add interesting stories.

Database and File Format

The database file (*.qsdb) is a plain text JSON format. Images are stored as they were as image files in an image folder. So, even 20 years in the future, when the program may not run on any machine anylonger, the principal data will remain to be readible.

Development info

First versions of the software used an SQL-Database (actually, this project was a test for developing database programming skills). All data entities where therefore based on relational database tables. Problem with the SQL database structure was the rather complex code needed to access and filter data, something generally not suitable for user interface development. Also, implementing undo/redo actions is rather tricky with database commits, since the information on creating transactions and rolling them back requires additional data structures - all in all a very complicated thing.

Therefore, newer version the database was changed into a plain text file with a database class handling all content. However, the file structure still resembles relational database.

Most data in the database is best kept in relational database structures, because entities are referenced several times:

  • Person
  • PairEvent
  • Picture

  • Name change events (NameChangeEvent) are unique to individual persons

  • Diagram cards and connectors are owned by the corresponding diagram.

Diagram Concept and Data Structures


Project Admins:


Related

Wiki: DiagramConcept