update DB docu
authorkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sat, 11 Dec 2010 20:45:44 +0000 (20:45 +0000)
committerkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sat, 11 Dec 2010 20:45:44 +0000 (20:45 +0000)
git-svn-id: https://silmor.de/svn/softmagic/pack/trunk@658 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33

doc/wolf-db.html

index 613ad11..b57e84b 100644 (file)
@@ -28,6 +28,17 @@ For each database table woc needs a description of that table:
     &lt;Value name="MaskUsable" value="0x300"/> &lt;!--dec: 768-->
   &lt;/Column>
   &lt;Column name="orderid" type="int32" foreignkey="order:orderid" notnull="yes"/>
+  &lt;AuditColumn name="auditrabbit" type="string:32" null="yes">
+    &lt;Call lang="php" method="MyRabbit::getRandomRabbitString()"/>
+  &lt;/AuditColumn>
+  &lt;Preset>
+    &lt;V col="ticketid" val="1"/>
+    &lt;V col="eventid" val="10"/>
+    &lt;V col="price" code="rand()"/>
+    &lt;V col="status" val="0x4"/>
+    &lt;V col="orderid" val="1"/>
+  &lt;/Preset>
+  &lt;Foreign method="getRabbit" via="rabbit:rabbitid=eventid"/>
 &lt;/Table>
 </pre>
 
@@ -37,11 +48,12 @@ Table attributes:
 <tr><td>name</td><td>the name of the table, the generated class will be <tt>Wt<i>tablename</i></tt></td></tr>
 <tr><td>backup</td><td>bool, contains whether the table is in the backup routine (default: false)</td></tr>
 <tr><td>base</td><td>optional, contains the class that this tables class is derived from, the base class must be derived from WobTable (default is to derive from WobTable directly)</td></tr>
+<tr><td>audit</td><td>optional, contains boolean value whether this table has an audit shadow table, default is false</td></tr>
 </table><p>
 
 The Table tag can have Doc subtags to embed documentation.<p>
 
-Column attributes:
+Column and AuditColumn attributes:
 <table frame="1" border="1">
 <tr><td><b>Attribute</b></td><td><b>Description</b></td></tr>
 <tr><td>name</td><td>the name of the column in the database</td></tr>
@@ -50,6 +62,7 @@ Column attributes:
 <tr><td>foreignkey</td><td>declares a reference to a foreign key column, the syntax is "foreigntablename:column" - the table that is referenced must be declared before the current one</td></tr>
 <tr><td>unique</td><td>bool, declares the column UNIQUE</td></tr>
 <tr><td>primarykey</td><td>bool, tells woc that this column is part of the primary key (multiple columns may be part of the primary key)</td></tr>
+<tr><td>index</td><td>bool, tells woc that this column should have an index to speed up read operations, the database driver should select an appropriate one</td></tr>
 <tr><td>default</td><td>declares a default value for the column (currently defaults for enums must be given as integer)</td></tr>
 </table><p>
 
@@ -71,6 +84,21 @@ The Value tags for enum types function similar to enums in C++. If a value attri
 
 Columns can be documented by adding the description directly to the Column tag or by embedding it with a Doc tag inside the Column tag. Enum values can be documented by embedding the description between &lt;Value> and &lt;/Value>.<p>
 
+AuditColumns define columns that are only present in the corresponding audit shadow table. See below for details.<p>
+
+Call defines a kind of default - whenever a new row is created the column is preset with the result of the call.<p>
+
+Call attributes:
+<table frame="1" border="1">
+<tr><td><b>Attribute</b></td><td><b>Description</b></td></tr>
+<tr><td>lang</td><td>the language in which the call is formulated (eg. "php" or "php/server")</td></tr>
+<tr><td>method</td><td>the expression that is assigned to the column</td></tr>
+</table><p>
+
+Presets are rows created when the database is populated. Each row has a "Preset" elements, each column has a "V" element. You can chose between giving the value directly with the "val" attribute or as a call with the "code" attribute - the code must not assume that any tables exist yet or that presets are created in a specific order.<p>
+
+Foreign defines getters that are not automatic (foreign keys in the same table are automatic, foreign keys in a different table are not) - the "method" attribute defines tha name of the method for that getter, while the "via" attribute defines the target table, and the comparison to make. The format of "via" is always "targetTable:targetColumn=hereColumn".<p>
+
 <h2>Auditing Shadow Tables</h2>
 
 The PACK toolkit allows for automatic auditing of tables. A table that is marked for auditing will automatically generate and keep copies of all data that is written to the table. On each insert, delete and update a copy of the new data is inserted into a new row of the auditing shadow table. The shadow table will have the same name as the base table plus the suffix <tt>_audit</tt> and it will also have a corresponding table class in the generated bindings, so that it can be queried.<p>