-- -- The User Preferences package -- -- Ported to PostgreSQL by: Gabriel Burca <gburca-openacs@ebixio.com> -- Based on the Oracle version by: ben@openforce -- -- distributed under the GPL v2 -- -- Jan. 1 2004 -- create table user_preference_types ( preference_type_id integer not null constraint user_pref_type_id_pk primary key constraint user_pref_type_id_fk references acs_objects(object_id), package_key varchar(100) constraint user_pref_type_pack_key_fk references apm_package_types(package_key), short_name varchar(100) not null, constraint user_pref_un unique (package_key, short_name), pretty_name varchar(250) not null, datatype varchar(20) default 'text' not null constraint user_pref_datatype_ch check (datatype in ('text','number','enum')), -- denormalized options if the datatype is choice -- we really don't need a table of these. They are separated by "|" options varchar(2000), -- preference-type wide default value default_value varchar(200) ); -- These are the default values for package-instance specific stuff create table user_preference_default_values ( preference_type_id integer not null constraint user_pref_def_val_type_id_fk references user_preference_types(preference_type_id), package_id integer not null constraint user_pref_def_val_pack_id_fk references apm_packages(package_id), constraint user_pref_def_val_pk primary key (preference_type_id, package_id), default_value varchar(200) not null ); -- These are the user preferences create table user_preference_values ( preference_type_id integer not null constraint user_pref_val_type_id_fk references user_preference_types(preference_type_id), user_id integer not null constraint user_pref_val_user_id_fk references users(user_id), package_id integer constraint user_pref_val_pack_id_fk references apm_packages(package_id), constraint user_pref_val_pk primary key (preference_type_id, user_id, package_id), value varchar(200) ); -- -- Object Types -- select acs_object_type__create_type('user_pref_type', 'User Preference Type', 'User Preference Types', 'acs_object', 'user_preference_types', 'preference_type_id', 'user_pref_type', 'f', null, null);