【发布时间】:2015-07-15 02:28:13
【问题描述】:
我正在创建一个类似于 Instagram 的应用程序。我有一个photos 表,其中有一个likers 列,显示哪些user_ids 喜欢了一张照片。例如,如果user_id 1 和 5 与photo_id 51 类似,那么photo_id 51 的likers 列将显示1 5。如图所示,user_ids 由空格分隔。现在,就像 Instagram 一样,我希望能够显示哪些用户名喜欢特定照片。为此,我需要能够分别从likers 列中获取所有user_ids。任何人都可以帮助我如何做到这一点,或提出另一种方法?
【问题讨论】:
-
考虑一个联结/相交表并将它们保存为单独的行?
-
您需要退后一步,了解数据库范式。这违背了关系数据库的第四范式。您不会在一个字段中存储多个值。相反,您将在名为“photo_likers”的表中有多个记录,该表将具有“照片”表的 photo_id 的外键。该 photo_likers 表将是关系表,并且与“照片”表具有一对多的关系。
-
我阅读了您的两篇 cmets,并将学习范式。我只是想自学 mysql rn,所以我有一些差距,但我已经为另一个 cmets 功能做了这种事情。其中 cmets 表有 cmets,然后是 photo_Id。不知道为什么我不考虑在这里使用它。