在SQL结果中创建一个新列

时间:2014-09-07 18:18:34

标签: mysql sql

是否可以在SQL查询结果中创建新列?我正在考虑扩展我的电影数据库以处理多个用户。我有一个表格,其中包含基本电影详细信息,例如发布的标题类型绘图评级年份,并且有一个表格,其中包含用户标记为已观看的电影的电影ID和用户ID列表。我想为用户生成一个列表,并显示所述用户是否已经观看过它。

实施例 矩阵看着 矩阵2 要么 矩阵2未观看

或者创建一个包含电影ID列表的用户想法和状态列的表会更好吗?

2 个答案:

答案 0 :(得分:2)

所以,你有用户和电影。用户可以观看很多电影。许多用户都可以观看一部电影。这意味着它是多对多关系。

这是一个标准问题。解决方案:

  1. movies表 - 电影ID,标题,类型等 - 你已经
  2. users_to_movies - 用户ID,电影ID,状态(或观看日期,如果未观看则为NULL),如果需要则还有其他任何数据
  3. users - 用户ID,姓名,姓氏,电子邮件 - 无论您需要什么。
  4. users_to_movies中的主键是复合键,由两列组成:(user_idmovie_id)。

    users_to_movies关联表。这是"桥梁"处于多对多关系的两个表之间。

    示例:

    id为5的用户于9月4日下午6点观看了Matrix 2(movies表中的id 12)。所以你INSERT INTO users_to_movies VALUES(5, 12, '2014-04-09')。如果您要存储用户ID 2未观看Matrix 2的信息,请插入(2, 12, NULL)。

答案 1 :(得分:1)

您应该添加一个新表

这是一个Many-to-Many表关系

此表应包含userID和movieID

我认为你不需要状态栏(如果观看,有一条线/如果没有,没有什么)