这是否正确归一化?

问题描述 投票:-2回答:1

我需要规范化这个数据库。这适用于允许用户注册将在实际位置托管的游戏锦标赛的应用程序。当您搜索锦标赛时,用户可以注册参加锦标赛,赞助活动或查看锦标赛。将有多个比赛,如Fortnite,Apex,以及你有什么。这些游戏将在PS4,PC和Xbox等平台上运行。多个玩家可以参加锦标赛,他们可以一次注册参加多个锦标赛,观众和赞助商也是如此。每个结果都应该存储,如胜负,并放入排行榜。请帮助我规范化这个ERD图。

sqlite database-design diagram database-normalization erd
1个回答
0
投票

要规范化数据库,您必须确保以下规则:

1)表的每列中的值是原子的。

我不确定你打算在桌子的输赢栏中保留什么。但他们必须是原子的。获胜的数量是可以的,但获胜的不是。

2)没有重复

我没有看到任何明显的两面性,所以我认为这部分是好的。

3)没有传递依赖

在锦标赛表中有Teams和Gamer FK。如果玩家只能参加锦标赛,如果他在一个团队中,那么你有一个传递依赖,并且应该删除该桌子的GamerTag。 LeaderBoard和Results Table也是如此

还有其他更正,比如游戏表中的“属性名称”列。在Team表中,TournamentID未设置为FK,并且GamerTag不是FK,因为它不是游戏玩家表中的PK。用户表还具有“属性名称”。其中包括。

除此之外,我不确定这个模型实际上会做你想做的事情。一般来说,列的名称不是助记符,所以我不能100%确定它们是什么。就像结果表中的领导者Fk一样。

对于第一个模型,这是一个良好的开端。我建议,在继续对其进行规范化之前,请小心修改它,写出每列的目的是什么。

规范化对于表来说是一件好事,但并不总是存储它们的最佳方式。所以我也会停下来思考是否真的有必要这样做。

© www.soinside.com 2019 - 2024. All rights reserved.