【发布时间】:2018-10-15 17:15:24
【问题描述】:
这里是第一个问题。
所以有一点背景知识,我是开发领域的新手,我正在创建一个数据库优先的 MVC 应用程序,它基本上用作视频游戏及其类型的日志,供游戏玩家根据最能引起他们兴趣的类型。这需要多对多关系,因为一个游戏可能被归类为多种类型,而一种类型可以有多个游戏被归类在它之下。正如它目前在我的 SQL 数据库中一样,我有三个表——游戏、流派和一个链接表。链接表具有 GameID 和 GenreID 的 FK。据我了解(或缺乏),因为游戏表本身有一个链接表并且没有针对流派的实际 FK,我如何能够在每个游戏的信息页面上显示应用于每个游戏的多种流派?是否有我遗漏的东西可以包含在其中一个表中,可能的 SQL 查询会有所帮助,或者一旦我将数据库导入到对其余部分进行编程后,我可以在 Visual Studio 中进行某种硬编码吗?应用程序?
我的数据库看起来像:
CREATE TABLE Game
(
GameID INT IDENTITY(1, 1) NOT NULL,
Name NVARCHAR(50) NOT NULL,
GameDescription NVARCHAR(200) NULL
)
CREATE TABLE Genre
(
GenreID INT IDENTITY(1, 1) NOT NULL,
Genre NVARCHAR(20) NOT NULL
)
CREATE TABLE GameGenre
(
GameGenreID INT IDENTITY(1, 1) NOT NULL,
FOREIGN KEY ('GameID') REFERENCES Cities('GameID'),
FOREIGN KEY ('GenreID') REFERENCES Cities('GenreID')
)
提前谢谢你。非常感谢任何和所有建议!
【问题讨论】:
-
您的 GameGenre 表可能不需要 GameGenreID 列。您可以简单地定义一个包含 GameID 和 GenreID 列的复合主键。这有利于防止 gameID 和genreID 的重复映射。