2012-05-22 2 views
0

Я пишу запрос для создания базы данных в SQL Server 2008 R2. Я планирую использовать его с инфраструктурой сущности в приложении mvc3Создайте отношение many to many и дайте каждому отношению объект

У меня есть пользователи, игры и рекорды. Что я хочу от этого делать:

Я хочу создать отношения «многие-ко-многим» между пользователями и играми.

Каждый пользователь может иметь несколько игр, и каждая игра может иметь несколько пользователей.

и каждое отношение пользовательской игры имеет 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) 
) 

Что такое лучший способ создать много-ко-многому пользователю игр соотношения и дать каждому соотношению один высокий балл? должен ли я создать 4-ю таблицу для хранения отношения? И если я сделаю это, я смогу использовать базу данных с инфраструктурой Entity в приложении MVC3 или это усложнит ее?

Спасибо

Дополнительное примечание: Я планирую использовать эту базу данных с рамки объекта в веб-приложении MVC 3.

ответ

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