0

SQL Server 2008 R2 でデータベースを作成するためのクエリを作成しています。mvc3 アプリケーションのエンティティ フレームワークで使用する予定です

ユーザー、ゲーム、ハイスコアがあります。私がやりたいことはこれです:

ユーザーとゲームの間に多対多の関係を作りたい。

各ユーザーは複数のゲームを持つことができ、各ゲームは複数のユーザーを持つことができます。

各関係ユーザー ゲームには 1 つのハイ スコアがあります。

ここまでで、users、games、highscores テーブルを作成しました。

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

多対多のユーザー ゲーム関係を作成し、各関係に 1 つの高いスコアを与える最良の方法は何ですか? リレーションを保持するために 4 番目のテーブルを作成する必要がありますか? また、そうすると、MVC3 アプリケーションで Entity フレームワークを使用してデータベースを使用できるようになりますか、それとも複雑になりますか?

ありがとうございました

追記: MVC 3 Web アプリケーションのエンティティ フレームワークでこのデータベースを使用する予定です。

4

1 に答える 1

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])
于 2012-05-23T05:42:25.063 に答える