Currently the PartyQualification defined as
<entity entity-name="PartyQualification" package="mantle.humanres.ability" use="nontransactional">
<field name="partyId" type="id" is-pk="true"/>
<field name="qualificationTypeEnumId" type="id" is-pk="true"/>
<field name="fromDate" type="date-time" is-pk="true"/>
<field name="thruDate" type="date-time"/>
<field name="description" type="text-medium"/>
...
</entity>
Would it be better to define it in the pattern like ContactMech as abstract entity which has PostalAddress, TelecomNumber extends it. In this pattern, for the QualificationTypeEnumId
such as EXPERIENCE
, DEGREE
, there may be concrete entity to extend PartyQualification and fill with more details.
e.g. for qualificationTypeEnumId DEGREE
, a Education
entity may be defined to maintain school, major, degree information, start date, end date, for EXPERIENCE
, a WorkExperience
entity may be defined to maintain employer info, position, department, start date, end date, job detail, responsibility etc.
And it seems that fromDate
and thruDate
in PartyQualification should not be used to represent duration (start, end date) of acquiring the qualification since they are used in the pattern for telling it is expired or not.