Rearrange representation of person's names in the database #1
Labels
No labels
ACE3
ASAP
Admin
Some Time
Soon(ish)
accepted
bug
collections
dance-lists
discussion
duplicate
easy
enhancement
fixed
ignored
schema-change
wont-fix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Strathspey/ace4#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Various people in the SCD community change their names during the course of their life, e.g., by marriage or divorce. The database represents this, somewhat clumsily, by having a separate
Personrecord for each of a person's identities and a self-referentialsame_asforeign key to link any previous ones to the current one. This of course violates the principle that every entity should have only one database entry.The proposed fix to this situation is to separate the
Personrecord from a person's name(s), which will be represented by a separatePersonNametable. EveryPersoncan have severalPersonNames, with onePersonNamerecord designated as the "preferred" one. The content of the "preferred"PersonNamewill be displayed when a person's name is called for, while the otherPersonNameswill be useful for searching.One situation that must be dealt with is the one where person X devises and publishes a dance (or tune, or album, …) and then changes her name to Y. We will have to figure out whether the dance should be credited to Y (because that is the current name of the deviser) or X (because that's what it says on the leaflet or book). The former case would be easier to implement but the latter would be more accurate. It would, however, require us to add an
author_nameforeign key toPersonNameto each situation (dances, publications, albums, …) where there is now anauthorforeign key toPerson, which would be a hassle. Alternatively, dances etc. could point to aNamedPersontable which would contain keys to thePersonas well as thePersonNamerecords pertaining to that particular dance. In this setup,NamedPersonwould effectively take on the rôle of today'sPersontable. It remains to be seen whether this will be reasonably efficient to implement. (Note: Dances etc. could just as well point toPersonNameinstances, since going fromNamedPersontoPersoninstead of fromPersonNametoPersonwould presumably be equally (in)efficient.)While we're changing the way names are associated with people, we can also fix the representation of names themselves. It would, for example, be useful to separate people's first and last names (Note: Or not – see this page) and to cater for nicknames ("Torf"). There should be a way to represent a person's preferred designation which is independent from their actual name. Finally, some
Personentries describe entities which are not actually individuals (e.g., the RSCDS or various dance bands). It might be worth adding a field to distinguish between "person", "group of persons", and "non-person entity".mentioned in issue #26
marked this issue as related to #26
added #47 as child task
added #48 as child task
added #49 as child task
added #50 as child task
removed child task #50
added #51 as child task
added #52 as child task
removed child task #51
changed the description
added #53 as child task
added #54 as child task