创建一个多对多的关系,并给每个关系一个对象

问题描述:

我正在写一个查询来在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])