我正在开发一个包含大量主机游戏的数据库。目前,它只有gameid
、title
、imgcover
、publisher
和releasedate
。我正在从数据库中检索游戏,并使用DataList显示它们。然而,我希望能够显示只属于一个或多个主机(例如PS4和Xbox one)的游戏。定义每个游戏可用于哪些主机的最佳方式是什么?我对数据库还很陌生,所以我唯一能想到的就是为每款游戏的每台主机都设置一个真/假列,但这听起来很糟糕。我应该为每台主机创建表,然后简单地列出gameid
和title
,还是有更简单、更高效的方法?谢谢
如果我是你,我会用两种不同的方式。
-
创建一个控制台表,并具有与所有控制台相关的条目。
1.1.创建一个Game_Console表,并将与Gameid和Consoleid相关的条目作为密钥,这样就不可能重复。
1.2使用Game_Console加入游戏和控制台,通过使用可能的索引更快地检索数据。
或
-
在同一个游戏表中有另一个名为Console的列,并有逗号分隔值的数据,如XBOX360、PS3、XBOXONE、PS4等。
1.1编写一个用户定义的函数来分割逗号分隔的值。请参阅我为拆分字符串而写的这篇文章http://sqlsaga.com/sql-server/split-function-in-sql-server/
除非你有其他办法,否则你几乎可以做到这一点。