Base Contact/Org Tables
Goals Adding a new contact involves searching the database for potential matches on the contact name and company name.  If a match is found, the records are brought up for editing.

Adding a new contact involves writing a record into the contact table, and if company information is supplied, it will be written into the org table.

Additionally, a record is written into the member table defining the relationship between the contact and the organization.  This facilitates the capture of multiple relationships per contact and per organization.

For example, a Contact may be a Vice President of one Organization and a member of the Board of Directors of another.

The Member table operates like an associative array, providing a list of Organizations for a given Contact, or a list of Contacts for a given Organization.

Guides An Organization record may be associated with zero or more Member records.

A Contact record may be associated with zero or more Member records.

A Member record is a single Contact associated with a single Organization.

The Member table should have a primary key composed of the Organization ID and the Contact ID.  An index composed of Contact ID and Organization ID would be useful when viewing Contact information.

Notes The company utilizing OpenCRM should create a record for itself in the Organization table and a record in the Contact table for each of its Sales Representatives.  Member records are automatically be created when adding a Contact after navigating to or creating an Organization record.