Mysql 数据库结构-链接数据
我想学习ASP.NETMVC5,所以我决定做一些评论网站。我想添加不同的控制台/pc游戏和电影等。对于游戏表,我有以下内容:Mysql 数据库结构-链接数据,mysql,sql,asp.net-mvc-5,Mysql,Sql,Asp.net Mvc 5,我想学习ASP.NETMVC5,所以我决定做一些评论网站。我想添加不同的控制台/pc游戏和电影等。对于游戏表,我有以下内容: CREATE TABLE [dbo].[Games] ( [GameId] INT IDENTITY (1, 1) NOT NULL, [Title] NVARCHAR (MAX) NOT NULL, [Genre] NVARCHAR (MAX) NOT NULL, [Format] NVARCHAR
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)
查看表关系我假设用户和游戏之间的关联是用户将编写游戏评论。如果是这样,一个用户可以查看多个游戏,而许多用户可以查看单个游戏。但是您缺少了一个审阅表,该表应该是您列出的两个表之间的关系 我唯一的问题是,我从mvc5获取了AspNetUsers,但我无法更改该表。您可以更改它。研究如何将UserManager和RoleManager类用于AspNetMembership。这可以公开实体框架对象以连接到这些成员资格表。