【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)
一 前言
此项目为冬奥会智能分析与预测可视化平台,这个项目是用于参加中国大学生计算机设计大赛-信息可视化设计赛道的项目,最终获得国赛三等奖的成绩。现在主要介绍一下本项目的数据库设计。
二 数据库选择
本项目选择的数据库为MySQL数据库。
2.1 MySQL数据库
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
2.2 MySQL优点
1. MySQL使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
3.为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4.支持多线程,充分利用 CPU 资源。
5.优化的 SQL查询算法,有效地提高查询速度。
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。
8.提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
12.MySQL 是开源的,所以你不需要支付额外的费用。
13.MySQL 使用标准的 SQL数据语言形式。
14.MySQL 对 PHP 有很好的支持,PHP是比较流行的 Web 开发语言。
15.MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。
三 数据库设计
数据来源
2022北京冬奥组委官网、国际奥林匹克官网等网站收集奖牌及视频数据,百度百科收集运动员个人信息数据,聚会数据网收集预测因素数据。
数据表
此项目数据库设计共包含10张数据表,分别为
- 用户信息表
- 历届冬奥会国家参赛人数表
- 历届冬奥会国家获得奖牌总表
- 历届冬奥会国家获得奖牌比赛项目表
- 获得奖牌的运动员信息表
- 具体比赛项目获得奖牌的运动员表
- 比赛项目信息表
- 比赛项目精彩视频表历届冬奥会
- 下届冬奥会预测因素表
- 下届冬奥会预测奖牌表。
3.1 用户信息表
package models
import "time"
type User struct {
ID int `json:"id" gorm:"column:id"`
Email string `json:"email" gorm:"column:email"`
Password string `json:"password" gorm:"column:password"`
CreateTime time.Time `json:"create_time" gorm:"column:create_time"`
IsValid string `json:"is_valid" gorm:"column:is_valid"`
}
3.2 历届冬奥会国家参赛人数表
package models
type CountryHuman struct {
ID int `json:"id" gorm:"column:id"`
Noc string `json:"noc" gorm:"column:noc"`
Country string `json:"country" gorm:"column:country"`
CountryMap string `json:"country_map" gorm:"column:country_map"`
Men int `json:"men" gorm:"column:men"`
Women int `json:"women" gorm:"column:women"`
Total int `json:"total" gorm:"column:total"`
Year int `json:"year" gorm:"column:year"`
}
3.3 历届冬奥会国家获得奖牌总表
package models
type CountryMedals struct {
ID int `json:"id" gorm:"column:id"`
Country string `json:"country" gorm:"column:country"`
Noc string `json:"noc" gorm:"column:noc"`
Gold int `json:"gold" gorm:"column:gold"`
Silver int `json:"silver" gorm:"column:silver"`
Bronze int `json:"bronze" gorm:"column:bronze"`
Total int `json:"total" gorm:"column:total"`
Year int `json:"year" gorm:"column:year"`
}
3.4 历届冬奥会国家获得奖牌比赛项目表
package models
type CountryEventMedals struct {
ID int `json:"id" gorm:"column:id"`
Country string `json:"country" gorm:"column:country"`
Noc string `json:"noc" gorm:"column:noc"`
Gold int `json:"gold" gorm:"column:gold"`
Silver int `json:"silver" gorm:"column:silver"`
Bronze int `json:"bronze" gorm:"column:bronze"`
Total int `json:"total" gorm:"column:total"`
Sport string `json:"sport" gorm:"column:sport"`
Year int `json:"year" gorm:"column:year"`
}
3.5 获得奖牌的运动员信息表
package models
type AthleteInformation struct {
ID int `json:"id" gorm:"column:id"`
Name string `json:"name" gorm:"column:name"`
Information string `json:"information" gorm:"column:information"`
Prize string `json:"prize" gorm:"column:prize"`
Picture string `json:"picture" gorm:"column:picture"`
}
3.6 具体比赛项目获得奖牌的运动员表
package models
type AthletesMedals struct {
ID int `json:"id" gorm:"column:id"`
Event string `json:"event" gorm:"column:event"`
Gold string `json:"gold" gorm:"column:gold"`
GoldNoc string `json:"gold_noc" gorm:"column:gold_noc"`
Silver string `json:"silver" gorm:"column:silver"`
SilverNoc string `json:"silver_noc" gorm:"column:silver_noc"`
Bronze string `json:"bronze" gorm:"column:bronze"`
BronzeNoc string `json:"bronze_noc" gorm:"column:bronze_noc"`
Sport string `json:"sport" gorm:"column:sport"`
Year int `json:"year" gorm:"column:year"`
}
3.7 比赛项目信息表
package models
type SportDescription struct {
ID int `json:"id" gorm:"column:id"`
Sport string `json:"sport" gorm:"column:sport"`
Description string `json:"description" gorm:"column:description"`
}
3.8 比赛项目精彩视频表历届冬奥会
package models
type SportVideo struct {
ID int `json:"id" gorm:"column:id"`
Name string `json:"name" gorm:"column:name"`
Describe1 string `json:"describe1" gorm:"column:describe1"`
Video1 string `json:"video1" gorm:"column:video1"`
Img1 string `json:"img1" gorm:"column:img1"`
Describe2 string `json:"describe2" gorm:"column:describe2"`
Video2 string `json:"video2" gorm:"column:video2"`
Img2 string `json:"img2" gorm:"column:img2"`
Describe3 string `json:"describe3" gorm:"column:describe3"`
Video3 string `json:"video3" gorm:"column:video3"`
Img3 string `json:"img3" gorm:"column:img3"`
Year int `json:"year" gorm:"column:year"`
}
3.9 下届冬奥会预测因素表
package models
type Predict struct {
ID int `json:"id" gorm:"column:id"`
Name string `json:"name" gorm:"column:name"`
Noc string `json:"noc" gorm:"column:noc"`
Men int `json:"men" gorm:"column:men"`
Women int `json:"women" gorm:"column:women"`
IsHome int `json:"is_home" gorm:"column:is_home"`
HumanGdp float64 `json:"human_gdp" gorm:"column:human_gdp"`
Gdp float64 `json:"gdp" gorm:"column:gdp"`
HumanTotal int `json:"human_total" gorm:"column:human_total"`
SocialSystem int `json:"social_system" gorm:"column:social_system"`
GoldRank int `json:"gold_rank" gorm:"column:gold_rank"`
SilverRank int `json:"silver_rank" gorm:"column:silver_rank"`
BronzeRank int `json:"bronze_rank" gorm:"column:bronze_rank"`
GoldPercent float64 `json:"gold_percent" gorm:"column:gold_percent"`
SilverPercent float64 `json:"silver_percent" gorm:"column:silver_percent"`
BronzePercent float64 `json:"bronze_percent" gorm:"column:bronze_percent"`
GoldCount int `json:"gold_count" gorm:"column:gold_count"`
SilverCount int `json:"silver_count" gorm:"column:silver_count"`
BronzeCount int `json:"bronze_count" gorm:"column:bronze_count"`
Year int `json:"year" gorm:"column:year"`
}
3.10 下届冬奥会预测奖牌表
package models
type PredictResult struct {
ID int `json:"id" gorm:"column:id"`
CountryName string `json:"country_name" gorm:"column:country_name"`
GoldCount int `json:"gold_count" gorm:"column:gold_count"`
SilverCount int `json:"silver_count" gorm:"column:silver_count"`
BronzeCount int `json:"bronze_count" gorm:"column:bronze_count"`
}
四 总结
以上就是冬奥会智能分析与预测可视化平台项目的数据库的具体设计啦,数据库设计中可能会有一些不足,请大家多多批评指正。
本专栏还会继续的更新,希望大家能够多多关注博主的文章,感谢大家的观看。