mysql - 数据库结构——链接数据

标签 mysql sql asp.net-mvc-5

我想学习 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/

相关文章:

java - 有没有办法在构造完成后读取PreparedStatement 的SQL 查询?

sql - 根据附近的时间戳连接两个表

asp.net - 使用 ssl 和客户端证书上传大文件 (uploadReadAheadSize) 但不希望预读所有数据

asp.net - 使用 UmbracoIdentity 和 MVC 5 身份验证的 SSO Umbraco 7

c# - Request.IsAuthenticated 返回 false 除非页面刷新

php - 如何找到此 sql 查询的行数?

mysql - 问卷数据库结构

javascript - 将 PHP 变量传递给 ajax 并基于该变量运行 PHP 函数

mysql - 无法运行 Hive 子查询

sql - 在 Impala 中将数组列查询为行的解决方法