假设具有下列列的表
UserID, UserName, Console, GameID,
GameTitle, GameVendor, VendorCountry, Game Genre, NumberOfPlayers这是正确的3NF吗?
Users(UserID,UserName, Console)
Games(GameID,GameVendor,GameTitle,GameGenre,NumberOfPlayers)
Vendors(GameVendor, VendorCountry)发布于 2019-10-22 14:04:09
任何列都不能依赖于非键列,并且需要依赖于主键。也就是说,第三种范式说明您应该删除不依赖键的表中的字段。
要处于第三范式,该实体必须满足2FN和1FN。
显然,如果你想得到一个更好的答案,你需要告诉我们范围的更多细节,让我们了解正在设计的内容和每一列的目的。
但是,根据您在问题中输入的信息,控制台不依赖于用户表中的用户ID。因此,我认为必须有更多的表来控制控制台信息:
CONSOLE(id, type)
GAME_GENRE(id,type)
GAMES(id,gameVendor,gameTitle,gameGenreId,numberOfPlayer)
CONSOLE_GAME(id, consoleId, gameId)
USERS(id,userName, consoleId)
VENDOR(gameVendor, vendorCountry)注意,我已经创建了一个名为GAME_GENRE的实体。是一个很好的实践,是用类别表来处理数据。
我建议快速阅读这些链接:
这两个链接都有示例。
关于这一主题,还有其他一些有例子的发言:
https://dba.stackexchange.com/questions/251688
复制相似问题