erDiagram shop_shop ||--o{ booking_shopdivecourse : "shop_id" booking_divecourseinfo ||--o{ booking_shopdivecourse : "dive_course_info_id" booking_engine_productstandardname |o--o{ booking_divecourseinfo : "standard_name_id" booking_divecourseinfo ||--o{ booking_divecourseprice : "eLearning B2C prices" booking_divecourseinfo ||--o{ booking_divecourseimage : "catalogue photos" booking_divecourseinfo }o--o{ booking_divecoursetag : "booking_divecourseinfo_tags" places_country |o--o{ booking_divecourseprice : "country_id (optional)" shop_shop { int id PK } booking_shopdivecourse { int id PK "course document key" int shop_id FK int dive_course_info_id FK bool is_offered "contact shop mode" bool is_elearning "elearning mode" bool on_padi_com "elearning mode" } booking_divecourseinfo { int id PK "course_id" text title "10 languages, label" text slug "URL" smallint type "activity type" smallint category "experience level" bool is_active "eligibility" bool is_elearning "mode cap" bool on_padi_com "mode cap" smallint popularity_order "business order" smallint order "fallback order" int standard_name_id FK text padi_url "Buy eLearning CTA" } booking_engine_productstandardname { int id PK "standard_name_id" text title "10 languages, card" smallint order "top-4 pick" smallint kind "course kind" } booking_divecourseprice { int dive_course_info_id FK varchar3 currency num price "eLearning cost" int country_id FK } booking_divecourseimage { int dive_course_info_id FK text image "fallback photo" } booking_divecoursetag { int id PK text title "7 tags today" text slug bool is_on_search } places_country { int id PK }