Forms Data Model Diagram - spencercrose/klamm GitHub Wiki
Current Simplified ERD
erDiagram
forms ||--o{ form_versions : "has many"
form_versions ||--o{ containers : "has many"
containers ||--o{ containers : "can nest"
containers ||--o{ form_fields : "has many"
form_fields }|--|| data_types : "uses one"
field_groups ||--o{ form_fields : "referenced by many"
form_versions ||--o{ field_group_instances : "has many"
field_group_instances }|--|| field_groups : "references one"
field_group_instances }|--|| containers : "is part of"
form_versions ||--o{ form_instance_fields : "has many"
form_instance_fields }|--|| form_fields : "references one"
forms {
bigserial id PK
varchar title
text purpose
varchar description
bigint ministry_id FK
bigint fill_type_id FK
bigint frequency_id FK
bigint reach_id FK
bigint form_repository_id FK
}
form_versions {
bigserial id PK
bigint form_id FK
varchar version
varchar name
varchar status
timestamp deployment_date
bigint requester_id FK
bigint approver_id FK
}
containers {
bigserial id PK
bigint form_version_id FK
bigint container_id FK "self-referencing"
varchar name
varchar type
integer order
}
field_groups {
bigserial id PK
varchar name
varchar label
boolean is_repeater
text description
}
form_fields {
bigserial id PK
bigint container_id FK
bigint field_group_id FK
bigint data_type_id FK
varchar name
varchar label
integer order
varchar data_binding
varchar mask
}
field_group_instances {
bigserial id PK
bigint form_version_id FK
bigint container_id FK
bigint field_group_id FK
}
data_types {
bigserial id PK
varchar name
varchar description
}
form_instance_fields {
bigserial id PK
bigint form_version_id FK
bigint form_field_id FK
varchar label
varchar data_binding
varchar mask
}
Refactored ERD