2012-05-22 70 views
0

我正在寫一個查詢來在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應用程序。

回答

0
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])