Members Data Structure

If you're coming to HarmonySite from another system (including offline systems such as spreadsheets and even paper), you will probably expect to see a simple structure for the member database.  Such a member database could easily be represented in a single Microsoft Excel spreadsheet, with one column for each piece of information to be stored for a member (name, birthday, email address, voice part, membership status, etc), and one row for each member.


It's not that simple in HarmonySite.  This is because there are many complex membership scenarios that HarmonySite must cater for, including...

  • People who sing with the group (or are affiliated in some other way) but are not technically "members"
  • People who are members but don't - ever - sing with the group
  • People who are members of more than one club/chapter within a broader organisation
  • Clubs/chapters that have more than one singing ensemble (for example, a "full" choir as well as a "youth" choir), and some members sing with both, perhaps with different voice parts in each
  • If the club/chapter is part of a parent organisation, then it's important to track the membership details of the member (join date, expiry date, status, etc) in the club/chapter and in the parent body
  • People who sing in a quartet that are not members of the club/chapter


For this reason, the "member" database has been divided into three related components, as follows:

  1. Members.  This database stores the details that pertain to the person - their name, contact details, birthday, spouse details, etc
  2. Memberships.  Each entry in this database represents the details of the relationship between the person and the club/chapter/parent body.  This relationship is called a "membership", containing details such as their join date, expiry date, fees payable, membership status, etc
  3. Participations.  Each entry in this database represents the details of the relationship between the person and one "ensemble" (choir, chorus, quartet, etc).  This relationship is called a "participation", containing details such as their voice part, first rehearsal date, conventions attended, etc.


Note also that the "members" database in a HarmonySite can contain the details of people who are not actually "members" at all.  They could be helpers, supporters, friends, sponsors, suppliers, etc.  There's no harm in storing the details of all these types of people in your HarmonySite database - they won't show up on most pages where only regular members should be shown.  So technically the "members" database can be thought of as a "persons" database.