Annotation Repository Schema
The annotation repository schema supports the following functions:
- Add/delete an annotation
 - Update an annotation's symbol
 - Update an annotation's description
 - Enforce the uniqueness of annotation symbols
 - Add/delete database assignments
 - Add/delete field assignments
 - Add/delete field value assignments
 - Add/delete cell assignments
 - Update assignments with a new annotation symbol
 
The annotation repository schema is represented in the following database entity diagram:

The tables in the annotation repository schema are:
| Table | Description | Primary Key | Foreign Key | 
|---|---|---|---|
AnnotationDetails  | Stores annotation symbols and descriptions.  | AnnotationID  | |
DbAssignment  | Stores database annotation assignments.  | Refers to the primary key in the AnnotationDetails table. | |
FieldAssignment  | Stores field annotation assignments.  | UniqueCode  | AnnotationID. Refers to the primary key in AnnotationDetails. | 
FieldValueCodeAssignment  | Stores field value annotation assignments. | UniqueCode  | AnnotationID. Refers to the primary key in AnnotationDetails. | 
Annotation  | Stores the joins between AnnotationDetails and CellAssignment. | AnnotationAssignID  | AnnotationID. Refers to the primary key in AnnotationDetails. | 
CellAssignment  | Stores cell assignment. All records that share the same   | AnnotationAssignID. Refers to the primary key in Annotation. |