# 北京云栈科技有限公司 **Repository Path**: beijing-cloud-stack/beijing-cloud-pavilion ## Basic Information - **Project Name**: 北京云栈科技有限公司 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-18 - **Last Updated**: 2026-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 房价预测系统 —— 数据库部分(成员2 分工) ## 项目简介 基于链家新房数据的房价预测系统,采用 Python 爬虫采集数据,Hadoop 做离线统计, HBase 存储大数据明细,Flask 提供 Web 服务,sklearn 多元线性回归完成房价预测。 本仓库为其中**数据库设计与维护**部分的代码。 ## 文件说明 ### 核心分工文件 | 文件 | 说明 | | --- | --- | | `config.py` | 数据库连接配置。MySQL 连接串、字符集、自动提交开关、Flask SECRET_KEY,以及 HBase 地址 | | `db.py` | SQLAlchemy 实例初始化,延迟绑定,由 app.py 的 `db.init_app(app)` 与 Flask 应用绑定 | | `createTable.py` | 建表脚本,推入应用上下文后调用 `db.create_all()` 依据模型类生成物理表 | | `model/User.py` | 用户表 user 的 ORM 映射(含与 History 的一对多关系) | | `model/Hourse_info.py` | 房源信息表 hourse_info 的 ORM 映射(18 个业务字段) | | `model/History.py` | 预测历史表 history 的 ORM 映射(含 user_id 外键) | ### 配套文件 | 文件 | 说明 | | --- | --- | | `setup_db.py` | 一键建库与数据导入脚本,对 Navicat 导出脚本做清洗并执行,导入后自检 | | `utils/query.py` | 原生 SQL 封装 `querys()`,供 ORM 不便处理的查询使用 | | `utils/getPublicData.py` | 数据访问层,基于 ORM 的增删改查、城市列表、预测历史统计与 JSON 字段处理 | ## 数据库概况 - 数据库:MySQL 5.7 - 库名:`hourses_data` - 字符集:utf8 / utf8_general_ci - 数据表:3 张 - `user` —— user_id(主键)、user_name(唯一)、user_password - `hourse_info` —— id(主键)+ 18 个业务字段 - `history` —— id(主键)、city、price、user_id(外键) - 表关系:`user.user_id ← history.user_id`,一对多 - 数据规模:7127 条房源,覆盖 81 个城市 ## 字段设计要点 - 户型 `rooms_desc`、面积区间 `area_range`、标签 `tags`、总价区间 `totalPrice_range` 为多值属性,采用 JSON 字符串存储,读写通过 `json.dumps` / `json.loads` 转换 - 封面图 `cover`、详细地址 `address`、详情链接 `detail_url` 长度设为 varchar(2555), 防止长 URL 被截断 - 单价 `price` 使用 varchar 存储,可兼容"待定"等非数值,预测时再统一转为整型 - 交房时间 `on_time` 等时间字段使用字符串类型,避免 MySQL 严格模式下 `0000-00-00` 导致的插入失败 ## 运行说明 1. 启动本地 MySQL 5.7,确认口令与 `config.py` 中一致 2. 执行 `python setup_db.py` 建库并导入数据脚本 3. 执行 `python createTable.py` 生成或校验表结构 4. 启动整个项目请回到项目根目录运行 `run_app.py` ## 注意事项 `config.py` 中的数据库口令为本地实训环境口令,仅限本机开发环境使用。