是否可以在SQL查询结果中创建新列?我正在考虑扩展我的电影数据库以处理多个用户。我有一个表格,其中包含基本电影详细信息,例如发布的标题类型绘图评级年份,并且有一个表格,其中包含用户标记为已观看的电影的电影ID和用户ID列表。我想为用户生成一个列表,并显示所述用户是否已经观看过它。
实施例 矩阵看着 矩阵2 要么 矩阵2未观看
或者创建一个包含电影ID列表的用户想法和状态列的表会更好吗?
答案 0 :(得分:2)
所以,你有用户和电影。用户可以观看很多电影。许多用户都可以观看一部电影。这意味着它是多对多关系。
这是一个标准问题。解决方案:
movies
表 - 电影ID,标题,类型等 - 你已经users_to_movies
- 用户ID,电影ID,状态(或观看日期,如果未观看则为NULL),如果需要则还有其他任何数据users
- 用户ID,姓名,姓氏,电子邮件 - 无论您需要什么。 users_to_movies
中的主键是复合键,由两列组成:(user_id
,movie_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)