Skip to main content

Data Model

bc_dev_tools normalizes imported data into two parallel star schemas -- one for FAQ issue types and one for BC fault codes. A match bridge connects them.

Data Model ERD

FAQ Star Schema

The flat FAQ API response (faq_api_issue_types) is decomposed into four dimension tables and a normalized fact table:

TableSource ColumnDescription
faq_main_categoriescsMainCategoryId / csMainCategoryNameTop-level fault categories
faq_sub_categoriescsSubCategoryId / csSubCategoryNameSecond-level categories (linked to main)
faq_issue_typesissueTypeId / issueTypeNameSpecific issue types
faq_item_partsitemPartId / itemPartNameItem/part identifiers
faq_issue_types_normalizedForeign keys to all four dimensionsFact table

SQL views are created for convenience querying, joining the fact table back to its dimensions.

BC Star Schema

The flat BC fault code relationship import (bcFaultCodeRelationships) follows the same pattern:

TableSource ColumnsDescription
bc_fault_areasFault Area Code / Fault Area DescriptionTop-level fault areas
bc_symptom_codesSymptom Code / Symptom Code DescriptionSymptom classifications
bc_fault_codes_dimFault Code / Fault Code DescriptionSpecific fault codes
bc_descriptionsDescriptionFree-text descriptions
bc_issue_types_normalizedForeign keys to all four dimensionsFact table

Match Bridge

The fuzzy matching process writes results back to the original BC source table (bcFaultCodeRelationships) as four additional columns:

ColumnTypeDescription
faq_match_foundbooleanWhether a match above the similarity threshold was found
faq_matched_idintegerForeign key to faq_issue_types_normalized.id
faq_match_detailsstringPer-column similarity breakdown
match_scorefloatOverall match confidence (0.0--1.0)

The column mapping used for matching:

BC ColumnFAQ Column
Fault Area DescriptioncsMainCategoryName
Symptom Code DescriptioncsSubCategoryName
Fault Code DescriptionitemPartName
DescriptionissueTypeName