Entity Relationship Diagram¶
This diagram shows the seven tables in the YHODA database and how they relate to each other.
The geo_lookup table is the geography dimension - it links the other tables via geography codes. The dataset_metadata table links to indicator via the dataset_code field, allowing any indicator row to be traced back to the pipeline run that loaded it.
erDiagram
geo_lookup {
int id PK
varchar lsoa_code UK
varchar lsoa_name
varchar msoa_code
varchar msoa_name
varchar lad_code
varchar lad_name
varchar region_code
varchar region_name
}
indicator {
int id PK
varchar indicator_id
varchar indicator_name
varchar geography_code
varchar geography_name
varchar geography_level
varchar lad_code
varchar lad_name
date reference_period
float value
varchar unit
varchar source
varchar dataset_code
varchar breakdown_category
boolean is_forecast
varchar forecast_model
timestamp created_at
timestamp updated_at
}
dataset_metadata {
int id PK
varchar dataset_code
varchar source
varchar extraction_status
varchar prefect_flow_run_id
int rows_extracted
int rows_loaded
text error_message
text source_url
timestamp extracted_at
timestamp loaded_at
timestamp created_at
}
jobs_lsoa {
int id PK
varchar lsoa_code
varchar lsoa_name
varchar msoa_code
varchar msoa_name
varchar msoa_hcl_name
varchar lad_code
varchar lad_name
int year
int sic_code
varchar sic_description
varchar section
varchar division
varchar group_name
int employees
timestamp created_at
timestamp updated_at
}
industry_business {
int id PK
int year
varchar msoa_code
varchar msoa_name
varchar lad_code
varchar lad_name
varchar industry
varchar turnover_band
int business_count
timestamp created_at
timestamp updated_at
}
industry_business_kpi {
int id PK
varchar grouping_level
int year
varchar lad_code
varchar lad_name
varchar msoa_code
varchar msoa_name
varchar industry
varchar turnover_band
int business_count
int business_lag3
float pct_change_3y
int business_lag8
float pct_change_8y
timestamp created_at
timestamp updated_at
}
correlations {
int id PK
varchar indicator_1_id
varchar indicator_2_id
varchar indicator_1_name
varchar indicator_2_name
float spearman_rho
float p_value
boolean is_significant
text message
timestamp computed_at
}
geo_lookup ||..o{ indicator : "geography_code / lad_code"
geo_lookup ||..o{ jobs_lsoa : "lsoa_code"
geo_lookup ||..o{ industry_business : "msoa_code"
geo_lookup ||..o{ industry_business_kpi : "lad_code"
dataset_metadata ||..o{ indicator : "dataset_code"
indicator ||..o{ correlations : "indicator_id / indicator_1_id"
indicator ||..o{ correlations : "indicator_id / indicator_2_id"