在PHP中创建收藏列表

时间:2011-08-17 15:22:51

标签: php

我正在开发一个软件门户,用户可以在其中添加软件作为收藏,当他们这样做时,软件将显示在他们的个人资料中。

为此,我计划执行以下操作:

“users”表中有一个名为“favorites”的单独列。当用户将软件添加为收藏夹时,将使用逗号添加软件ID,例如

"102,405,502,695,595"

为了显示我计划使用PHP的爆炸功能并在此之后查询软件名称。

我的问题是:如果用户有100个收藏夹,会发生什么?加载列表需要很长时间吗?有没有其他方法可以实现这个概念?

4 个答案:

答案 0 :(得分:3)

从我的观点来看,这并不好,不是因为你每次都要爆炸这个清单,因为没关系。

问题是,每当有人删除1个收藏夹时,脚本必须获取所有文本,爆炸,删除该ID并再次更新。

您应该将该表格设为id|user|id_software,每个软件都有自己的行,然后选择,更新和删除将更快更容易。

对于你的答案:如果你有1000个收藏夹,没有任何反应,如果设置,机器和操作系统都可以,那么PHP的设计和能够处理大量数据。

答案 1 :(得分:1)

您可以使用另一个表来分配用户和软件之间的关系。如果您注意到只有少数几个条目,那么在一个表中使用这样的序列化的东西是很好的。

答案 2 :(得分:0)

这是一个可怕的做法。

必须规范化您的表格。如果您不知道规范化是什么,那么您需要在开始此项目之前阅读它。

基本上,您需要三张桌子。

  • 用户
  • 软件
  • UsersFavouriteSoftware

用户将idusername 软件将idsoftwareName, UsersFavouriteSoftware将拥有一个“注册表”,您可以在其中建立联接关系。

用户表

id | userName
1  | Bob
2  | Alive

软件表

id | softwareName
1  | Firefox
2  | Chrome
3  | Internet Exploiter

加入表格

userId | softwareId
1      | 2
1      | 3
2      | 1

ID 1的用户喜欢Chrome和Internet Exploiter,您可以通过简单的连接查询获取此信息。

答案 3 :(得分:0)

我猜您不想将用户限制为最大收藏数量?

无论如何,在这种情况下,我创建了一个额外的数据库表,以某种方式像

一样

表FavoritesUserRelations (int)user_id | (INT)software_id

如果您要使用Fav-Entry,例如删除收藏夹,添加新的或为显示目的排序,这种方法将使您的代码更简单。此外,您的尺寸,最大或搜索声明不受限制......