Structure of member data - MikeBlyth/mission_database GitHub Wiki
Information for developers
Currently, the data for each member consists of these “models” corresponding to related tables in the database:
- Family (has many members): Name, residence location, status (on field, inactive, home assignment, etc.)
- Member (has one family): Name, birth date, nationality, ministry, current location
- Personnel data (one record per member): education, qualifications, start & end dates of SIM service, employment status (member, associate, umbrella …)
- Health Data (one record per member)
- Contacts: one or more of on-field contact, home address, family contact at home, etc. Each contact has fields for emails, phone numbers, address, Skype, and so on.
- Field terms: one record for each term: start and end date of each term, ministry, employment status
- Travel: one record for each departure or arrival
The primary reason for separating health & personnel data from the core member data is to allow access control, so that only users with given privileges can view or control those types of data. This will be especially important if actual confidential data is included in the database (even a list of medications or medical problems) and if confidentiality legal requirements apply (such as HIPAA in the USA).