Index: openacs-4/packages/acs-person/www/doc/acs-persons-schema.jpg =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-person/www/doc/Attic/acs-persons-schema.jpg,v diff -u Binary files differ Index: openacs-4/packages/acs-person/www/doc/developer.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-person/www/doc/Attic/developer.html,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-person/www/doc/developer.html 26 Sep 2002 03:42:51 -0000 1.1 @@ -0,0 +1,106 @@ + + +
+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.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 problem (along with addresses) seems relatively simple +until you think of all the variables that come along with it. Not +even taking into account alphabets there are many gotchas in +storing names correctly.
+ +Take for instance names in the Latin American Countries and
+Spain:
+Luis Alvaro Hernandez Garcia
+How would that be stored? In most US-centric databases this is
+stored as either:
+
+first_name — Luis
+middle_name — Alvaro
+last_name — Hernandez Garcia
+
+
+OR (as the case of OpenACS)
+
+
+first_name — Luis Alvaro
+last_name — Hernandez Garcia
+
+
+While certainly this model is useful, it has its limitations.
+What if you decide to sort your data by Last Name? What is the
+correct part of last_name to sort on? Is it Hernandez or Garcia?
+These are easy Western Language problems that get much more
+complicated when dealing with Eastern European or other cultures
+where names aren't written in a first, middle, last order.
+
+Here are some examples of cultural differences and you can see
+the problems that are created:
+Indonesia — Many (not all) Indonesians have only one
+name.
+Korea — Some put family name first, others put
+family names last.
+Hispanic — As well as the above example the rules
+can get very complex. Spanish men, for example, sometimes use
+their father's name and mother's name and separate them
+with a y (and).
+Luis Alvaro Hernandez y Garcia
+Other times they may hyphenate the last names:
+Luis Alvaro Hernandez-Garcia
+Now onto Hispanic women (and this also changes somewhat by
+country). In general a single women is similar to men. She takes
+her father's last name and adds her mothers maiden name. The
+difference comes about when the women marries. In this case the
+women still has the fathers last name but appends the
+husband's last name preceded by de (of):
+Luisa Benavides Hernandez de Fernandez
+As a side note, in Cuba the Wife keeps her name and so does the
+husband.
+To complicate matters more, the Wife may be refered to as Luisa
+de Fernandez or simply Luisa Fernandez, as well as Sra
+Fernandez.