Athletic Press Framework M1-01 阶段开发日志
📅 阶段编号:M1-01:数据库表结构创建与验证
🧭 目标:建立 Athletic Press Framework 独立的数据存储层,为后续赛事录入、成绩统计、打印与可视化奠定基础。
🧩 开发内容
插件路径:/wp-content/plugins/athletic-press-core-v0.1.0/
新增文件:inc/db.php
主文件修改:在 autoload_apc() 中加入 ‘db’,确保优先加载
数据表:wp_ap_events 与 wp_ap_results
🧱 表结构设计摘要
表 1:wp_ap_events — 赛事基本信息
| 字段名 | 类型 | 说明 |
| id | BIGINT | 主键 |
| title | VARCHAR(255) | 赛事名称 |
| event_type | VARCHAR(50) | 项目类型(athletics/football/fun 等) |
| grade | VARCHAR(50) | 年级或组别 |
| venue | VARCHAR(100) | 比赛场地 |
| date | DATETIME | 比赛时间 |
| status | VARCHAR(20) | 状态:draft/scheduled/finished |
| lane_count | TINYINT | 道次数(适用于田径) |
| notes | TEXT | 备注 |
| created_at / updated_at | DATETIME | 自动记录时间 |
表 2:wp_ap_results — 成绩记录表
| 字段名 | 类型 | 说明 |
| id | BIGINT | 主键 |
| event_id | BIGINT | 所属赛事 ID |
| player_id | BIGINT | 选手 ID(可选) |
| team_id | BIGINT | 队伍 ID(可选) |
| lane | TINYINT | 道次号 |
| score | DECIMAL(10,3) | 成绩(秒/米/分) |
| unit | VARCHAR(10) | 单位(sec/m/point) |
| rank | TINYINT | 名次 |
| is_record | BOOLEAN | 是否破纪录 |
| notes | TEXT | 附注 |
| created_at | DATETIME | 创建时间 |
🧠 技术实现
- 使用 dbDelta() 自动建表,支持未来结构升级。
- 激活即建表:插件激活后自动检测表是否存在。
- 精度标准:score 字段采用 DECIMAL(10,3),满足千分之一秒和毫米精度。
- 兼容性:表前缀由 $wpdb->prefix 自动适配多站点环境。
🧪 验证命令
sudo -u www-data wp plugin deactivate athletic-press-core-v0.1.0
sudo -u www-data wp plugin activate athletic-press-core-v0.1.0
sudo -u www-data wp db query “SHOW TABLES LIKE ‘%ap_%’;”
📌 阶段成果
- 成功建立 Athletic Press 独立数据库;
- 可支持后续所有项目的通用赛事与成绩数据;
- 架构完成度:30% → 50%;
- 里程碑:Athletic Press 从插件时代迈向框架时代。
🧾 阶段结论
本阶段标志着 “Athletic Press Core” 具备独立的数据核心。后续所有模块(赛事录入、成绩展示、打印系统)都将以此为底层。系统安全、兼容、可扩展,满足 1.0 版本的架构要求。
🧭 下一阶段(M1-02)
目标:在 WordPress 后台添加“赛事管理(AP Events)”与“成绩管理(AP Results)”两个菜单,实现后台录入 UI,可对 wp_ap_events 与 wp_ap_results 表进行增删改查(CRUD)。
发表回复