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

一 前言

此项目为冬奥会智能分析与预测可视化平台,这个项目是用于参加中国大学生计算机设计大赛-信息可视化设计赛道的项目,最终获得国赛三等奖的成绩。现在主要介绍一下本项目的数据库设计。

二 数据库选择

本项目选择的数据库为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张数据表,分别为

  1. 用户信息表
  2. 历届冬奥会国家参赛人数表
  3. 历届冬奥会国家获得奖牌总表
  4. 历届冬奥会国家获得奖牌比赛项目表
  5. 获得奖牌的运动员信息表
  6. 具体比赛项目获得奖牌的运动员表
  7. 比赛项目信息表
  8. 比赛项目精彩视频表历届冬奥会
  9. 下届冬奥会预测因素表
  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"`
}

四 总结

以上就是冬奥会智能分析与预测可视化平台项目的数据库的具体设计啦,数据库设计中可能会有一些不足,请大家多多批评指正。
本专栏还会继续的更新,希望大家能够多多关注博主的文章,感谢大家的观看。

posted @ 2022-10-08 16:44  qi66  阅读(153)  评论(0编辑  收藏  举报