Forum OpenACS Q&A: Extending Parties Data Model
I've worked with OpenACS and ACS for a few years now, but am only now turning my attention to the parties model in any detail. I have read the documentation and feel I now have a clearer understanding of how the parties and users fits together. I want to extend the parties model in a way that allows me to store different types of parties and also to store extra information about each of these types of parties. The Parties documentation describes in summary how to go about doing this, but I was wondering if there are any examples or more detailed descriptions of how to extend the data model.
I did find this thread about user-profile and profile-provider, but it wasn't clear if this is now part of OpenACS. (I don't know anything really about dotLRN).
Whether to extend parties or to store stuff separately from parties will depend on the type information you want to store and what you want to do with it.
For instance the photobook (extended user information, in reality, the name is an MIT-ism) doesn't extend user but rather maps a content item to each user and extends content revision to hold the actual information. This means photobook can 1) keep an audit trail of changes (which Sloan/MIT wanted) and 2) use the automatic form generation features of the CR/CMS)
I think it maps using the cr_item<->object mapping functionality of the content repository.
Groups and relational segments on the other hand extend party with a minimal amount of information and no audit trail of changes is necessary so simple subtyping is used.