[英]database structure - linking data
我想學習ASP.NET MVC5,所以我決定做一些評論站點。 我要添加不同的控制台/ PC游戲和電影等。對於“游戲”表,我具有以下內容:
CREATE TABLE [dbo].[Games] (
[GameId] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (MAX) NOT NULL,
[Genre] NVARCHAR (MAX) NOT NULL,
[Format] NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_dbo.Games] PRIMARY KEY CLUSTERED ([GameId] ASC)
);
我對電影表有相同的代碼,這是我從MVC獲得的用戶表:
CREATE TABLE [dbo].[AspNetUsers] (
[Id] NVARCHAR (128) NOT NULL,
[Email] NVARCHAR (256) NULL,
[EmailConfirmed] BIT NOT NULL,
[PasswordHash] NVARCHAR (MAX) NULL,
[SecurityStamp] NVARCHAR (MAX) NULL,
[PhoneNumber] NVARCHAR (MAX) NULL,
[PhoneNumberConfirmed] BIT NOT NULL,
[TwoFactorEnabled] BIT NOT NULL,
[LockoutEndDateUtc] DATETIME NULL,
[LockoutEnabled] BIT NOT NULL,
[AccessFailedCount] INT NOT NULL,
[UserName] NVARCHAR (256) NOT NULL,
CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
);
GO
CREATE UNIQUE NONCLUSTERED INDEX [UserNameIndex]
ON [dbo].[AspNetUsers]([UserName] ASC);
但是我的問題是,如何將電影/游戲鏈接到用戶? 我是否只需要在游戲/電影表上添加FK,還是應該在用戶表上添加FK?
接下來,我將如何存儲評分,(INT)和評論(NVARCHAR)? 我認為最好是為此創建一個專用表,然后將表鏈接到游戲/電影表?
還有一個后續問題。 如何鏈接這兩個?
並且一旦它們鏈接起來...我將如何繼續填充我的數據庫? 我以為我可以編寫某種腳本來替我填充它們?
從技術上講,您實際上應該有一個單獨的聯接表,該表具有電影的外鍵和用戶的外鍵,因為您在此處處理M2M關系:用戶可以查看許多電影,並且許多用戶可以查看電影。 游戲也是如此。
但是,由於您是從MVC開始的,所以實際上是在把車推到了馬的前面。 雖然您可以將現有數據庫與Entity Framework一起使用,但最好讓Entity Framework根據您編寫的代碼為您管理數據庫架構。 然后,當您對類進行更改時,可以創建將相應更新架構的遷移。
只需搜索“首先輸入實體框架代碼”之類的內容即可。 您會找到大量的文章和教程來解釋如何進行。
AspNetUsers
------
Id (PK)
Game
------
Id (PK)
Review
------
Id (PK)
GameId (FK)
UserId (FK)
或如果用戶只能瀏覽游戲1次,則可以組合鍵
Review
------
GameId (PK)
UserId (PK)
但是如果您想擁有電影和游戲,則可以
Review
------
Id (PK)
GameId (FK NULL)
MovieId (FK NULL)
UserId (FK)
查看表關系
我假設用戶與游戲之間的關聯在於用戶將撰寫游戲評論。 如果是這樣,則用戶可以查看多個游戲,並且許多用戶可以查看單個游戲。 但是您缺少一個查看表,該表應該是您列出的兩個表之間的關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.