{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://example.org/schema/global-edu-db.json",
  "title": "全球高校留学基础数据库",
  "description": "面向中国学生选校 / 留学咨询 / 推荐系统 / 院校对比的全球高校基础数据库",
  "type": "object",
  "properties": {
    "data_sources": {
      "type": "array",
      "items": {
        "$ref": "./data_sources.json"
      }
    },
    "countries": {
      "type": "array",
      "items": {
        "$ref": "./countries.json"
      }
    },
    "cities": {
      "type": "array",
      "items": {
        "$ref": "./cities.json"
      }
    },
    "subjects": {
      "type": "array",
      "items": {
        "$ref": "./subjects.json"
      }
    },
    "ranking_providers": {
      "type": "array",
      "items": {
        "$ref": "./ranking_providers.json"
      }
    },
    "partners": {
      "type": "array",
      "items": {
        "$ref": "./partners.json"
      }
    },
    "score_metrics": {
      "type": "array",
      "items": {
        "$ref": "./score_metrics.json"
      }
    },
    "universities": {
      "type": "array",
      "items": {
        "$ref": "./universities.json"
      }
    },
    "departments": {
      "type": "array",
      "items": {
        "$ref": "./departments.json"
      }
    },
    "programs": {
      "type": "array",
      "items": {
        "$ref": "./programs.json"
      }
    },
    "rankings": {
      "type": "array",
      "items": {
        "$ref": "./rankings.json"
      }
    },
    "admissions": {
      "type": "array",
      "items": {
        "$ref": "./admissions.json"
      }
    },
    "costs_scholarships": {
      "type": "array",
      "items": {
        "$ref": "./costs_scholarships.json"
      }
    },
    "china_student_metrics": {
      "type": "array",
      "items": {
        "$ref": "./china_student_metrics.json"
      }
    },
    "collaborations": {
      "type": "array",
      "items": {
        "$ref": "./collaborations.json"
      }
    },
    "research": {
      "type": "array",
      "items": {
        "$ref": "./research.json"
      }
    },
    "careers_alumni": {
      "type": "array",
      "items": {
        "$ref": "./careers_alumni.json"
      }
    },
    "campus_life_location": {
      "type": "array",
      "items": {
        "$ref": "./campus_life_location.json"
      }
    },
    "scores": {
      "type": "array",
      "items": {
        "$ref": "./scores.json"
      }
    },
    "accreditations": {
      "type": "array",
      "items": {
        "$ref": "./accreditations.json"
      }
    },
    "visa_immigration": {
      "type": "array",
      "items": {
        "$ref": "./visa_immigration.json"
      }
    },
    "institution_profile": {
      "type": "array",
      "items": {
        "$ref": "./institution_profile.json"
      }
    },
    "update_logs": {
      "type": "array",
      "items": {
        "$ref": "./update_logs.json"
      }
    },
    "data_conflicts": {
      "type": "array",
      "items": {
        "$ref": "./data_conflicts.json"
      }
    },
    "admin_users": {
      "type": "array",
      "items": {
        "$ref": "./admin_users.json"
      }
    },
    "favorites": {
      "type": "array",
      "items": {
        "$ref": "./favorites.json"
      }
    },
    "search_logs": {
      "type": "array",
      "items": {
        "$ref": "./search_logs.json"
      }
    }
  },
  "x-database": {
    "name": "llm_tzsinen_cn",
    "charset": "utf8mb4",
    "collate": "utf8mb4_unicode_ci",
    "table_count": 27,
    "field_count": 626
  },
  "x-relations": {
    "data_sources": "1:N —— 被 universities / programs / rankings / admissions 等所有业务表通过 source_id 引用",
    "countries": "1:N —— countries 1 : N cities；countries 1 : N universities；countries 1 : N visa_immigration",
    "cities": "1:N —— cities 1 : N universities；cities 1 : N campus_life_location",
    "subjects": "1:N —— subjects 1 : N programs；subjects 1 : N rankings（学科排名）",
    "ranking_providers": "1:N —— ranking_providers 1 : N rankings（同一机构可发布多年/多学科）",
    "partners": "M:N —— partners M : N universities，通过 collaborations 关联表实现",
    "score_metrics": "1:N —— score_metrics 1 : N scores（同一指标可给多校多年打分）",
    "universities": "1:N —— universities 1:N departments / programs / rankings / admissions /\ncosts_scholarships / china_student_metrics / collaborations / research /\ncareers_alumni / scores / accreditations / institution_profile；\n1:1 —— universities 1:1 campus_life_location；\nM:N —— 通过 collaborations 与 partners 多对多",
    "departments": "N:1 —— departments N:1 universities；1:N —— departments 1:N programs；自关联：院系层级树",
    "programs": "N:1 —— programs N:1 universities；N:1 —— programs N:1 departments；1:N —— programs 1:N admissions / costs_scholarships",
    "rankings": "N:1 —— rankings N:1 universities；N:1 —— rankings N:1 ranking_providers",
    "admissions": "N:1 —— admissions N:1 universities；N:1 —— admissions N:1 programs（可空）",
    "costs_scholarships": "N:1 —— costs_scholarships N:1 universities；N:1 ——（可选）costs_scholarships N:1 programs",
    "china_student_metrics": "N:1 —— china_student_metrics N:1 universities（每校每学年一条）",
    "collaborations": "M:N 关联表 —— collaborations 实现 universities M:N partners，同时 N:1 universities / partners / departments",
    "research": "N:1 —— research N:1 universities（每校每年一条）",
    "careers_alumni": "N:1 —— careers_alumni N:1 universities（每校每年一条）",
    "campus_life_location": "1:1 —— campus_life_location 1:1 universities（每校一条，UNIQUE 约束保证）",
    "scores": "N:1 —— scores N:1 universities；N:1 —— scores N:1 score_metrics",
    "accreditations": "N:1 —— accreditations N:1 universities（一校可有多条认证/多个专业认证）",
    "visa_immigration": "N:1 —— visa_immigration N:1 countries（按国家/地区维护，被 universities 通过 country_code 间接引用）",
    "institution_profile": "N:1 —— institution_profile N:1 universities（每校每财年一条）",
    "update_logs": "多态关联 —— update_logs 通过 table_name + record_id 指向任意业务表，不建物理外键",
    "data_conflicts": "多态关联 —— data_conflicts 通过 table_name + record_id 指向任意业务表；通过 source_a_id/source_b_id 关联 data_sources",
    "admin_users": "独立表 —— 通过 update_logs.operator 间接关联业务数据",
    "favorites": "N:1 —— favorites N:1 universities",
    "search_logs": "独立日志表 —— 不建立物理外键，避免影响写入性能"
  }
}