Mercurial > p > roundup > code
annotate doc/gadfly.txt @ 1723:311375e4f2fe maint-0.5 0.5.9
pre-release machinations
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 18 Jul 2003 07:05:56 +0000 |
| parents | b59b60306914 |
| children |
| 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 |
