Table of Contents
Mayon DB Schema
Attached below is the first public draft of the Agasti Mayon database schema being developed by the CUNY SPS Agasti Team. The design patterns of this schema are largely directed by the conventions of the Doctrine Object Relational Mapper (ORM) engine.
General Guidelines
This schema was designed to largely follow the guidelines of the fourth normal form. This choice:
- reduces data assumptions
- creates more options for modular plugins
- establishes strong data standards
- better anticipates longitudinal function
- improves performance
- reduces database size
Limitations
There are also a number of challenges yet to be overcome. While the Doctrine ORM provides a number of useful features the following issues are impairing efforts to simplify the design:
- Doctrine has difficulty establishing a 1-1 relationship where the primary key of each table is also member of the foreign key relationship
- Doctrine does not, at this time, support foreign key references to composite primary keys
- Doctrine does not support a many-to-many relationship between more than two tables (eg, no three or four-way M-M)
Modules
Schema Diagram
Please Note: The schema is still undergoing heavy development and migration support is not currently provided. Click to view full details and zoom:
This diagram was developed using the non-free tool, ORM Designer. The schema itself is distributed as yml.