来自两个MySQL表的相关信息

时间:2014-01-15 02:41:37

标签: php mysql

我是PHP和MySQL的新手。我不确定我是否足够清楚地说出我的问题。跟我一起......我想把两张桌子里的信息联系在一起。而且我不确定该怎么做。这是一个相关的例子。

假设我有一个名为users的表,其中包含以下用户信息:

  • id
  • 用户名
  • 密码
  • favorite_movies
  • 在表2中,我有关于电影的详细信息

  • ID
  • 标题
  • 假设我想创建一个用户可以在其“收藏夹”中添加/删除电影的Web应用程序。用户应该可以使用与其帐户相关联的任意数量的喜爱电影。

    ...问题

  • 我应该如何将信息存储在“favorite_movies”字段中?
  • 我已经考虑过将json_encode($ array)和json_decode($ array)中的信息存储在favorite_movies中,以便在配置文件中记录一系列电影ID。有没有更好的方法来存储对电影数据库中存在的电影的引用?

  • 我在数据库上运行什么mysql查询来获取喜欢给定标题的电影的所有用户的列表?
  • 我在数据库上运行什么mysql查询来获取用户喜欢的所有电影的列表?
  • 鉴于我的json_encode / decode解决方案,这对我来说似乎很棘手。我有一个值数组...如何将该数组应用于查询?

  • 我怀疑我在这里描述的是一个数据库式名称。它是什么让我可以进一步研究它?
  • 非常感谢。

    1 个答案:

    答案 0 :(得分:1)

    您不希望在字段中存储“喜爱的电影”。您需要一个单独的表user_movies,其中包含以下字段:

    • user_movie_id
    • USER_ID
    • movie_id

    这是一张关联表。

    如果您想将电影列表作为ID,那么您可以执行以下操作:

    select um.user_id, group_concat(um.movie_id)
    from user_movies um 
    group by um.user_id;