Overview
SSP "external" tables/views do not enforce referential integrity, but loose, logical dependencies do exist between them. In some cases, even when such a logical dependency exists, it may not necessarily be the case that the depended-on record actually exist in order for the system to function. So producing a completely accurate dependency graph would be a complex effort and likely frequently subject to change as the application evolves. But some deployers have requested guidance on a recommended order in which to update these tables to ensure the complete dataset is an internally consistent as possible at any given time. This document provides such a recommendation. Keep in mind of course that this is just that - a recommendation. Not all the tables listed are required and other orderings might be perfectly valid.
For inserts the ordering is from top-to-bottom, i.e. insert into tables in the order listed. Updates would typically be in the same order as inserts, but ordering is generally less of an issue. Ordering is reversed for deletes (which should be rare). I.e. delete from bottom to top.
This document also provides a "primary use" column which tries to indicate the SSP subsystem that makes heaviest use of the data in any given table. This is intended to help provide prioritization guidance at an implementation level, most dependency consideration aside. E.g., while external_faculty_course
may be listed ahead of external_course
, but these tables have no even logical dependency. So if your deployment is more interested in the MAP subsystem than in the Early Alert subsystem, you needn't populate external_faculty_course
before populating external_course
.
2.0.0-b3
Table | Logical Dependencies | Primary Use |
---|---|---|
external_term |
| System |
external_program | MAP | |
external_department | MAP | |
external_division | MAP | |
external_person | external_term , external_department , external_person | System |
external_registration_status_by_term | external_term , external_person | Main |
external_faculty_course | external_term , external_person | Early Alert |
external_faculty_course_roster | external_term , external_person , external_faculty_course_roster | Early Alert |
external_student_academic_program | external_program , external_person | Main |
external_student_test | external_person | Main |
external_student_transcript | external_person | Main, MAP |
external_student_transcript_course |
(Note that while this table refers to the same notion of a "course" as | MAP |
external_student_transcript_term | external_term , external_person | Main |
external_student_financial_aid | external_person | Main, MAP |
external_course |
(You might think this table should precede | MAP |
external_course_term | external_term , external_person | MAP |
external_course_requisite | external_course | MAP |
external_course_program | external_course , external_program | MAP |
external_course_tag | external_course | MAP |
external_person_planning_status | external_person | MAP |
external_person_note | external_person | MAP |