Sounds good. This is a good approach to allow for unique settings per affiliation.

If there are and queries using the affiliation ID, it should probably be changed to use the name. That way the id is just a database id and the affiliation attributes are queried by the name not the id - but I'm not sure if we are using the id anywhere.


--On January 7, 2010 1:34:20 PM -0500 Andy Kurth <> wrote:

I propose adding an additional schema entry to the affiliation table:
id: 0
name: "Global"

The "0" index in the affiliation table would remain fixed to represent
global or system-wide.

This will be particularly useful as more and more configuration
parameters are stored in the database.  The need to distinguish
parameters for a specific affiliation versus system-wide parameters has
grown as VCL implementations expand to support several institutions.
Configuration tables would reference the affiliation table, allowing
system-wide and affiliation-specific settings to be treated identically
from a programming standpoint.

Queries could be written to attempt to retrieve a configuration value for
a particular non-zero affiliation ID and default to the global value if
it's not set for the affiliation.

One thing to be careful of if implemented... any code using/checking the
affiliation ID value must not use a true/false evaluation to determine if
it's valid because 0 will be a valid index but evaluate as false.



Aaron Peeler
OIT Advanced Computing
College of Engineering-NCSU

Reply via email to