Details
-
Improvement
-
Resolution: Done
-
Major
-
None
-
None
-
None
Description
Summary of outcomes for Data Standard 3.0
- Problem Addressed: Prior to v3.0, StudentProgramAssociation acted as a sort of base class, with several related subclasses. Each instance of a subclass also created an instance of StudentProgramAssociation. However, users could write records to StudentProgramAssociation directly without necessarily writing a corresponding subclass record. This created confusion and was not consistent with how other subclassing (EducationOrganization) is handled.
- High-level Reasoning: By creating a true base class (GeneralStudentProgramAssociation), the subclasses may be handled much more consistently with how EducationOrganiation subclasses are handled. StudentProgramAssociation and all of its former subclasses are now subclasses of GeneralStudentProgramAssociation, such that each instance of a program association subclass creates a GeneralStudentProgramAssociation record and each GeneralStudentProgramAssociation record has a corresponding subclass record.
- Changes Made: A GeneralStudentProgramAssociation association was created. All StudentProgramAssociation characteristics were moved to the new GeneralStudentProgramAssociation and StudentProgramAssociation became a subclass of GeneralStudentProgramAssociation (with a string "Description" field added). All existing subclasses were changed to be based off of the new GeneralStudentProgramAssociation.
Original ticket description follows:
This abstract base class - GeneralStudentProgramAssociation - is designed to solve the issue of having multiple API bindings for sub-classes of StudentProgramAssociation. For example, in the current API, a Title I program association can be referenced from both /studentProgramAssociation and /titleIAStudentProgramAssociation. In field work, this confusion has generated problems: API clients manipulating the base class without realizing it is manipulating the sub-class.
The proposed design is to:
- Create abstract entity GeneralStudentProgramAssociation that has the same attributes of the current StudentProgramAssociation
- Make StudentProgramAssociation inherit from this class GeneralStudentProgramAssociation, with no new attributes
- Make all current sub-classes of StudentProgramAssociation inherit from GeneralStudentProgramAssociation
Attachments
Issue Links
- relates to
-
DATASTD-1188 Change StudentProgramAssociation references to reference base class
- Closed