Many to many to many relationship, and other newbie question

Greetings, all
First, i want to say that I am tremendously impressed by Xataface. Although I am a long-time user and developer of Open Source apps (contributor to the Drupal project), I have only been using Xataface for one day. Yet I have a working application RIGHT NOW that does the essentials of what I needed. This tool is a godsend. Thanks!
Although my app is functional, there are things I want to refine, hence this post.
QUESTION 1:
The trickiest thing I need to do is to define a third-order domain table. To be specific, I have the following for a nonprofit organization's officer roster:
groups: {group_id, group_name, ...other_columns}
offices: {office_id, office_title, ....other_columns}
people: {person_id, person_name, .....other_columns}
I currently relate these with a domain table of this form:
group_officers: {group_id, office_id, officer_id, effective_date}
I see from the wiki that doing this sort of thing with a two-way domain table is fairly easy, but the semantics of the INI files don't seem to allow for my three-way domain table.
What I have done in the interim is to simply define the group_officers table as if it were a primary table, then made select vocabularies to populate each of its columns (except the date, which is a simple date field).
is there a way to do this using Xataface relationship semantics?
QUESTION 2:
When the group_officers table changes (appointment of a new officer), I need to copy the *old* contents into a history table. I see how to use trigger functionality to do this, and I'm familiar with PEAR's database functions in PHP. My question is, should I use PEAR invocations directly in my delegated class, or is it more "xataface-correct" to use a Xataface API call to execute my queries and let Xataface pass the query to PEAR?
Again, thanks to the developers for an amazingly useful piece of software. it is *exactly* what I needed for this application: I don't care about being able to highly-customize the look of the pages (although I know Xataface allows this), but I needed it to be functional quickly. I couldn't ask for more quickly than "one afternoon"!
Kind regards,
Scott
First, i want to say that I am tremendously impressed by Xataface. Although I am a long-time user and developer of Open Source apps (contributor to the Drupal project), I have only been using Xataface for one day. Yet I have a working application RIGHT NOW that does the essentials of what I needed. This tool is a godsend. Thanks!
Although my app is functional, there are things I want to refine, hence this post.
QUESTION 1:
The trickiest thing I need to do is to define a third-order domain table. To be specific, I have the following for a nonprofit organization's officer roster:
groups: {group_id, group_name, ...other_columns}
offices: {office_id, office_title, ....other_columns}
people: {person_id, person_name, .....other_columns}
I currently relate these with a domain table of this form:
group_officers: {group_id, office_id, officer_id, effective_date}
I see from the wiki that doing this sort of thing with a two-way domain table is fairly easy, but the semantics of the INI files don't seem to allow for my three-way domain table.
What I have done in the interim is to simply define the group_officers table as if it were a primary table, then made select vocabularies to populate each of its columns (except the date, which is a simple date field).
is there a way to do this using Xataface relationship semantics?
QUESTION 2:
When the group_officers table changes (appointment of a new officer), I need to copy the *old* contents into a history table. I see how to use trigger functionality to do this, and I'm familiar with PEAR's database functions in PHP. My question is, should I use PEAR invocations directly in my delegated class, or is it more "xataface-correct" to use a Xataface API call to execute my queries and let Xataface pass the query to PEAR?
Again, thanks to the developers for an amazingly useful piece of software. it is *exactly* what I needed for this application: I don't care about being able to highly-customize the look of the pages (although I know Xataface allows this), but I needed it to be functional quickly. I couldn't ask for more quickly than "one afternoon"!
Kind regards,
Scott