Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
The HR-XML specification describes several optional, multi-valued attributes. Since we aren't dealing with XML as the native format several changes/compromises had to be made.
Certainly, multi-valued attributes could have been completely
normalized and been technically correct. It wasn't felt that
this was an efficient or proper use and in most cases only the
base table acs_persons
will be used.
With that in mind here is a rundown of the differences from
the specification:
family_name_acs_persons_map
. This
creates an optional space for storing multiple family names. It
also includes a field called: order
, which allows
for putting the family names in the correct order for multiple
family names. By default the family_name in the acs_persons table
will always appear first. The order field also allows for sorting
in the case of querys.given_name_acs_persons_map
. This
creates an optional space for storing multiple given names. It
also includes a field called: order
, which allows
for putting the given names in the correct order for multiple
given names. By default the given_name in the acs_persons table
will always appear first. The order field also allows for sorting
in the case of querys.middle_name_acs_persons_map
. This
creates an optional space for storing multiple middle names. It
also includes a field called: order
, which allows
for putting the middle names in the correct order for multiple
middle names. By default the middle_name in the acs_persons table
will always appear first. The order field also allows for sorting
in the case of querys.affix_acs_persons_map
. This creates an
optional space for storing multiple affixes. It is linked to a
lookup table that def ines the valid affix_types
.
This is complicated and may need additional thought as it is
really storing multiple unrelated attributes in one field. I
would not have modelled this like it is, but this is the standard
so I will leave it as is.