Linking Tables in the Eval Database

Any pair of statements from Building the Eval Data Model that mirrors the same subject and object represents a many-to-many relationship. Now that the PERSON entity represents three entities, individual, evaluator, and auditor, many-to-many relationships exist between GROUP and PERSON and between ACTIVITY and PERSON. That is, a GROUP has many PERSONS and a PERSON can belong to many GROUPS. The PersonGroup table is added to the database to resolve this relationship. Similarly, the PersonActivity table is added to the database to resolve the many-to-many relationship between ACTIVITY and PERSON.

Tables added to a database to resolve many-to-many relationships often contain only foreign key columns and contribute no additional information, but the PersonGroup and PersonActivity tables are different. The PersonType attribute in the PersonGroup table describes how an entry (record) in the Person table relates to a group (that is, whether the record represents an individual, an evaluator, or an auditor). The PersonActivity table contains all of the data elements that describe a person's accomplishments.