From Woozle Writes Code
Jump to navigation Jump to search


This is an experimental concept which I am developing out of an intuitive sense of the needs of several different projects, including FinanceFerret and TextFerret.

The primary differences between this and a standard relational database are:

  • record-definitions are not fixed
  • records can have a hierarchical relationship with each other

The code will be designed to use a standard relational database (MySQL) as a back-end, but it may be that this concept is ultimately more compatible with other types of databases (e.g. object databases).


This concept is designed to be a more flexible and intuitive way of handling relationships between groups of data fields.

  • A "type" is a way of representing data in all forms needed for using it (typically: internal/native, storage, and display).
  • A "field" is a named slot that has a particular type and belongs to a record.
  • A "cell" is a field that contains particular data and belongs to exactly one record.
  • A "record" consists of any collection of cells.
  • A "record template" consists of any collection of fields.
  • A "table" consists of a collection of records, and may have

Notes: fields have parents, that's how they get grouped; parent is also a field? we do need to be able to do hierarchy somehow, anyway.