/
behavior-aggregate-schema.xml
46 lines (39 loc) · 2.14 KB
/
behavior-aggregate-schema.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<database name="bookstore-behavior" defaultIdMethod="native" package="behavior.aggregate" namespace="Propel\Tests\Bookstore\Behavior">
<table name="aggregate_post" phpName="AggregatePost">
<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER"/>
<behavior name="aggregate_column">
<parameter name="name" value="nb_comments"/>
<parameter name="expression" value="COUNT(id)"/>
<parameter name="foreign_table" value="aggregate_comment"/>
</behavior>
</table>
<table name="aggregate_comment" phpName="AggregateComment">
<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER"/>
<column name="post_id" type="INTEGER"/>
<foreign-key foreignTable="aggregate_post" onDelete="setnull" onUpdate="cascade">
<reference local="post_id" foreign="id"/>
</foreign-key>
</table>
<table name="aggregate_poll" phpName="AggregatePoll">
<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER"/>
<behavior id="aggregate_total_score" name="aggregate_column">
<parameter name="name" value="total_score"/>
<parameter name="expression" value="SUM(score)"/>
<parameter name="foreign_table" value="aggregate_item"/>
</behavior>
<behavior id="aggregate_nb_votes" name="aggregate_column">
<parameter name="name" value="nb_votes"/>
<parameter name="expression" value="COUNT(score)"/>
<parameter name="foreign_table" value="aggregate_item"/>
</behavior>
</table>
<table name="aggregate_item" phpName="AggregateItem">
<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER"/>
<column name="score" defaultValue="0" type="INTEGER"/>
<column name="poll_id" type="INTEGER"/>
<foreign-key foreignTable="aggregate_poll" onDelete="setnull" onUpdate="cascade">
<reference local="poll_id" foreign="id"/>
</foreign-key>
</table>
</database>