是否可以在 SQL 查询结果中创建一个新列?我正在考虑扩展我的电影数据库以处理多个用户。我有一个包含基本电影详细信息的表格,例如发布的标题类型情节评级年份,还有一个包含电影 ID 和用户标记为已观看的电影的用户 ID 列表的表格。我想为用户生成一个列表,并显示该用户是否看过它。
前 观看的矩阵 矩阵2 或者 矩阵2未看
或者创建一个包含电影 ID 列表 nada 用户想法和状态列的表会更好吗?
最佳答案
因此,您有用户和电影。一个用户可能看过很多电影。一部电影可能会被许多用户观看。这意味着它是一个多对多关系。
这是一个标准问题。解决方案:
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
)。
关于mysql - 在 SQL 结果中创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713337/