【发布时间】:2015-02-03 15:41:36
【问题描述】:
我很感兴趣,多对多关系如何以及为什么比将信息存储在一行中更好。
示例:我有两个表,用户和电影(非常大的数据)。我需要建立关系“视图”。 我有两个想法:
- 在“用户”表中创建另一个名为“views”的列,我将在其中以字符串的形式存储此用户观看过的电影的 ID。例如:“2,5,7...”。然后我会在 PHP 中处理这些信息。
- 创建新表 users_movies(多对多),其中包含 user_id 和 movie_id 列。 user_id=5 和 movie_id=7 的行表示用户 5 观看了电影 7。
我很想知道哪种方法更好,为什么。请考虑到数据相当大。
【问题讨论】:
-
想象一下:如果您想创建一个看过特定电影的用户列表,或者只是计算有多少用户看过该电影,该怎么办?您必须获取所有数据,然后遍历它以过滤看过该电影的用户。特别是由于您将拥有大量数据,因此效率不会很高。这就是发明关系数据库的原因。
-
方法一就像试图“unsqlize”一个 sql 数据库