Mercurial > p > roundup > code
view doc/gadfly.txt @ 1003:f89b8d32291b
Hack hack hack...
. Implemented security assertion idea punted to mailing list (pretty easy to
back out if someone comes up with a better idea) so editing "my details"
works again. Rationalised and cleaned up the actions in any case.
. fixed some more display issues (stuff appearing when it should and shouldn't)
. trying a nicer colouring scheme for the top level page
. handle no grouping being specified
. fixed journaltag so the logged-in user is journalled, not admin!
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Sun, 01 Sep 2002 12:18:41 +0000 |
| parents | b59b60306914 |
| children |
line wrap: on
line source
============== Gadfly Backend ============== This document outlines the design and implementation of the Gadfly (relational database) backend. About Gadfly ============ Gadfly is a collection of python modules that provides relational database functionality entirely implemented in Python. It supports a subset of the intergalactic standard RDBMS Structured Query Language SQL. Basic Structure =============== Roundup supports a dynamic schema, something which doesn't map very well to a relational database table schema (or at least, it's frowned upon :) Approaches: 1. Map roundup classes to relational tables. Automatically detect schema changes and modify the gadfly table schemas appropriately. Multilinks (which represent a many-to-many relationship) are handled through intermediate tables. Journals are stored adjunct to the per-class tables. 2. Map roundup classes to relational tables. Automatically detect schema changes and modify the gadfly table schemas appropriately. Multilinks are handled with string representations of the id lists. Journals are stored adjunct to the per-class tables. 3. Four tables: - classes: class id, name - properties: class id, property id, name, type, options - nodes: class id, node id, property id, value (one row per multilink value) - journals: class id, node id, event, description The classes and properties tables will need to be kept in sync with the roundup schema. 4. Two less efficient tables: - nodes: class, property, node id, value (one row per multilink value) - journals: class, node id, event, description The classes and properties tables will need to be kept in sync with the roundup schema.
