我想学习 ASP.NET MVC5,所以我决定做一个评论网站。我想添加不同的控制台/电脑游戏和电影等。对于游戏表,我有这个:
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)? 我认为最好为此制作一个特定的表格,而不是将表格链接到游戏/电影表格?
还有一个跟进问题。我如何链接这两者?
一旦它们被链接起来……我将如何继续填充我的数据库?我假设我可以制作某种脚本来为我填充它们?
最佳答案
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)
查看表关系
关于mysql - 数据库结构——链接数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27411356/