Phase 4 — SQL DDL Implementation¶
This phase implements the Phase 3 logical schema in MySQL using production-ready DDL.
1. Target DBMS¶
- DBMS: MySQL
- Character set/collation:
utf8mb4/utf8mb4_0900_ai_ci - Engine: InnoDB
2. Implementation Artifacts¶
- Core implementation script used by the website docs:
Phase4.sql - Current full schema/data dump used in the project workspace:
CS340.sql
This documentation reflects the implemented table structures and constraints in CS340.sql.
3. Dependency-Safe Creation Order¶
To satisfy foreign key dependencies, parent relations are created before dependent relations:
UserClinicHealthConditionAwarenessContentFamilyMember(FK ->User)MedicalHistory(FK ->FamilyMember,HealthCondition)HealthEvent(FK ->FamilyMember,HealthCondition)RiskAlert(FK ->FamilyMember)Appointment(FK ->User,Clinic)
4. Physical Design Notes¶
4.1 Naming Style¶
- Tables use PascalCase (for example:
FamilyMember) - Columns use snake_case (for example:
member_id) - Constraint names are explicit (
fk_*,chk_*)
4.2 Domain Control with ENUM¶
ENUM columns enforce controlled values for:
Appointment.statusRiskAlert.risk_levelRiskAlert.statusMedicalHistory.severityHealthEvent.severityFamilyMember.blood_typeFamilyMember.genderAwarenessContent.content_type
4.3 Constraint Strategy¶
- Primary keys: auto-increment integer identifiers
- Foreign keys: enforced between all dependent relations
- CHECK constraints:
HealthEvent.onset_agein range 0..120 when non-nullRiskAlert.resolved_date >= created_datewhen resolved
5. Referential Action Rules¶
Implemented ON DELETE/ON UPDATE behavior:
FamilyMember.user_id->User.user_id:ON DELETE CASCADE,ON UPDATE CASCADEMedicalHistory.member_id->FamilyMember.member_id:ON DELETE CASCADE,ON UPDATE CASCADEMedicalHistory.condition_id->HealthCondition.condition_id:ON DELETE RESTRICT,ON UPDATE CASCADEHealthEvent.member_id->FamilyMember.member_id:ON DELETE CASCADE,ON UPDATE CASCADEHealthEvent.condition_id->HealthCondition.condition_id:ON DELETE RESTRICT,ON UPDATE CASCADERiskAlert.member_id->FamilyMember.member_id:ON DELETE RESTRICT,ON UPDATE CASCADEAppointment.user_id->User.user_id:ON DELETE CASCADE,ON UPDATE CASCADEAppointment.clinic_id->Clinic.clinic_id:ON DELETE RESTRICT,ON UPDATE CASCADE
Implementation Outcome¶
Phase 4 delivers a physically implemented schema aligned with Phase 3, with explicit integrity controls and validated dependency ordering for reliable execution.