annotate doc/gadfly.txt @ 1651:0bdcfc2a47ac

*** empty log message ***
author Richard Jones <richard@users.sourceforge.net>
date Fri, 16 May 2003 01:44:49 +0000
parents b59b60306914
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
995
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 ==============
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 Gadfly Backend
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 ==============
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 This document outlines the design and implementation of the Gadfly (relational
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 database) backend.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 About Gadfly
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 ============
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 Gadfly is a collection of python modules that provides relational
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 database functionality entirely implemented in Python. It supports a
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 subset of the intergalactic standard RDBMS Structured Query Language
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 SQL.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 Basic Structure
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 ===============
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 Roundup supports a dynamic schema, something which doesn't map very well to a
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 relational database table schema (or at least, it's frowned upon :)
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 Approaches:
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 1. Map roundup classes to relational tables. Automatically detect schema
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 changes and modify the gadfly table schemas appropriately. Multilinks
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 (which represent a many-to-many relationship) are handled through
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 intermediate tables.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 Journals are stored adjunct to the per-class tables.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 2. Map roundup classes to relational tables. Automatically detect schema
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 changes and modify the gadfly table schemas appropriately. Multilinks
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 are handled with string representations of the id lists.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 Journals are stored adjunct to the per-class tables.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 3. Four tables:
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 - classes: class id, name
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 - properties: class id, property id, name, type, options
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 - nodes: class id, node id, property id, value (one row per multilink value)
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 - journals: class id, node id, event, description
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 The classes and properties tables will need to be kept in sync with the
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 roundup schema.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 4. Two less efficient tables:
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 - nodes: class, property, node id, value (one row per multilink value)
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 - journals: class, node id, event, description
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 The classes and properties tables will need to be kept in sync with the
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 roundup schema.
b59b60306914 gadfly backend docco
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51

Roundup Issue Tracker: http://roundup-tracker.org/