Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tlug] database design idea... what do you think?



College database application, with administration users who frequently
request new things added to the database.

What do you think of the following idea for a way to introduce ad-hoc
attributes for users:

Make table "attributes" in a many-to-many relationship with table
students. Include from_date and to_date to indicate the dates the
student acquired and lost this attribute. Also include field operator
to record the user who entered the data and change_date to record the
actual timestamp of the data entry. Attributes about the student that
need to be tracked (like advanced placement, scholarship, probation,
etc.) are each a record in the table. When the administration wants to
add a new trackable attribute of students (for example,
works-as-computer-lab-assistant), the attribute is added to table
"attributes" . The code contains class "student" which has:
(1) a Get_Attrs() function which makes an array of all the student's
attributes, allowing the application to add checks in later reports
for these new trackable attributes;
(2) an Update_Attrs() function which analyzes student data to give and
remove attributes according to the results of certain checks (i.e. if
(current GPA < 2.5) student.give_attr(attributes.assign("probation"),
date.today()))

In textbook database design, if you are told to add the ability to
track scholarship students, you need a scholarship table, and if you
are asked to track computer lab assistants, you make a campus_jobs
tables. The above idea does not jive with what I learned in my MS
courses, but it seems to make sense.

What do you think?

---
Micheal Cooper, LTL (Loyal TLUG Lurker)
Miyazaki, Japan (GMT+9, no DST)


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links