Index: openacs-4/packages/workflow/sql/postgresql/workflow-tables-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/sql/postgresql/workflow-tables-create.sql,v
diff -u -r1.20 -r1.21
--- openacs-4/packages/workflow/sql/postgresql/workflow-tables-create.sql	5 Jan 2004 15:42:51 -0000	1.20
+++ openacs-4/packages/workflow/sql/postgresql/workflow-tables-create.sql	8 Jan 2004 13:23:08 -0000	1.21
@@ -260,7 +260,46 @@
                           on delete cascade
 );
 
+create table workflow_action_children(
+  child_id                  integer
+                            constraint wf_action_children_pk
+                            primary key,
+  action_id                 integer
+                            constraint wf_action_children_nn
+                            not null
+                            constraint wf_action_children_action_fk
+                            references workflow_actions(action_id)
+                            on delete cascade,
+  child_workflow            integer
+                            constraint wf_action_children_workflow_fk
+                            references workflows(workflow_id)
+                            on delete cascade
+);
 
+create table workflow_action_child_role_map(
+  child_id                  integer
+                            constraint wf_act_child_rl_map_child_fk
+                            references workflow_action_children(child_id),
+  parent_role               integer
+                            constraint wf_act_child_rl_map_prnt_rl_fk
+                            references workflow_roles(role_id),
+  child_role                integer
+                            constraint wf_act_child_rl_map_chld_rl_fk
+                            references workflow_roles(role_id),
+  mapping_type              char(40)
+                            constraint wf_act_child_rl_map_type_ck
+                            check (mapping_type in 
+                                ('per_role','per_user')),
+  constraint wf_act_chld_rl_map_pk
+  primary key (child_id, parent_role)
+);
+
+comment on column workflow_action_child_role_map.mapping_type is '
+  If per user, we create a child workflow per user who is a member of any of the parties assigned to the parent_role.
+  If per role, we create just one child workflow, with the exact same parties that are in the parent_role.
+  If more than one child_role has a mapping_type other than per_role, the cartesian product of these roles will be created.
+';
+
 ---------------------------------
 -- Workflow level, Finite State Machine Model
 ---------------------------------
@@ -304,7 +343,7 @@
   new_state               integer
                           constraint wf_fsm_acns_new_st_fk
                           references workflow_fsm_states(state_id)
-                          on delete cascade
+                          on delete set null
   -- can be null
 );
 
