创建一个多对多的关系,并给每个关系一个对象
问题描述:
我正在写一个查询来在SQL Server 2008 R2中创建一个数据库。我打算在mvc3应用程序中使用它与实体框架创建一个多对多的关系,并给每个关系一个对象
我有用户,游戏和高分。 我想要做的是这样的:
我想创建用户和游戏之间的多对多关系。
每个用户可以有多个游戏,每个游戏可以有多个用户。
和每个关系用户游戏有1个高分。
到目前为止,我创建的用户,游戏,高分表:
CREATE TABLE Users
(
UserId INT IDENTITY(1,1),
FirstName VARCHAR(64) NOT NULL,
LastName VARCHAR(64) NOT NULL,
Email VARCHAR(200) NOT NULL,
CreatedDate DateTime NULL,
PhoneNumber VARCHAR(32) NULL,
Password VARCHAR(64),
CONSTRAINT pk_users_userid PRIMARY KEY(UserId)
)
CREATE TABLE Games
(
GameId INT IDENTITY(1,1),
Url VARCHAR(64) NOT NULL,
CONSTRAINT pk_gamess_gameid PRIMARY KEY(GameId)
)
CREATE TABLE Highscores
(
HighscoreId INT IDENTITY(1,1),
Value INT NOT NULL,
CONSTRAINT pk_surveyors_surveyorid PRIMARY KEY(HighscoreId)
)
是什么创造了许多到许多用户博弈关系,并给每一个关系高分的最佳途径?我应该创建一个第四个表来保存关系吗?如果我这样做,我将能够在MVC3应用程序中使用Entity框架中的数据库,还是会使它复杂化?
谢谢
附加说明:我打算使用这个数据库与实体框架的MVC 3 Web应用程序。
答
CREATE TABLE Users (
UserId INT IDENTITY(1,1),
FirstName VARCHAR(64) NOT NULL,
LastName VARCHAR(64) NOT NULL,
Email VARCHAR(200) NOT NULL,
CreatedDate DateTime NULL,
PhoneNumber VARCHAR(32) NULL,
Password VARCHAR(64),
CONSTRAINT pk_users_userid PRIMARY KEY(UserId)
)
CREATE TABLE Games (
GameId INT IDENTITY(1,1),
Url VARCHAR(64) NOT NULL,
CONSTRAINT pk_gamess_gameid PRIMARY KEY(GameId)
)
CREATE TABLE Highscores (
HighscoreId INT IDENTITY(1,1),
UserID Int,
GameID Int,
Value INT NOT NULL,
CONSTRAINT pk_surveyors_surveyorid PRIMARY KEY(HighscoreId)
)
ALTER TABLE [dbo].[Highscores] ADD CONSTRAINT [FK_Highscores_Games] FOREIGN KEY([GameID])
ALTER TABLE [dbo].[Highscores] ADD CONSTRAINT [FK_Highscores_Users] FOREIGN KEY([UserID])