一 前言

二 数据库选择

2.1 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 系统。

三 数据库设计

数据来源

数据表

3.1 用户信息表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 历届冬奥会国家参赛人数表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 历届冬奥会国家获得奖牌总表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 历届冬奥会国家获得奖牌比赛项目表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 获得奖牌的运动员信息表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 具体比赛项目获得奖牌的运动员表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 比赛项目信息表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 比赛项目精彩视频表历届冬奥会

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 下届冬奥会预测因素表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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 下届冬奥会预测奖牌表

【中国大学生计算机大赛三等奖】冬奥会智能分析与预测可视化平台-数据库设计(二)-LMLPHP

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"`
}

四 总结

10-08 16:47