Hello Peter!
It's wonderful that you're interested in this feature, perhaps i can send you my modifications to the source code, or talk about it in this thread. I go to do it!
I thought model departments and classes with community-types. Why not?. I continue thinking that this diagram is a good model for dotlrn, but i will want listen other ideas.
Another thing, i think that the modificated tables could have this aspect:
create table dotlrn_faculties
faculty_key varchar(100)
constraint dotlrn_faculties_key_fk
references dotlrn_community_types (community_type)
constraint dotlrn_faculties_pk
primary key,
external_url varchar(4000)
);
create table dotlrn_departments (
department_key varchar(100)
constraint dotlrn_departments_dept_key_fk
references dotlrn_community_types (community_type)
constraint dotlrn_departments_pk
primary key,
external_url varchar(4000),
create table dotlrn_classes (
class_key varchar(100)
constraint dotlrn_classes_class_key_fk
references dotlrn_community_types (community_type)
constraint dotlrn_classes_pk
primary key,
);
We can establish the relationship between class and department when we create the department creating a composition_rel. I'm not sure if implement this, in pl/sql in the file classes-create.sql or in class-procs.* thanks to next query
select composition_rel__new(:class_key, :department_id)
from dual;
I think that is more elegant use pl/sql but it don't seem be used:
[12:09][darroyo@pikachu:~/cvs/dotlrn]$ grep -rl dotlrn_class__new *
packages/dotlrn/sql/postgresql/classes-create.sql
Thanks for your interest!