Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中创建收藏夹列表_Php - Fatal编程技术网

在PHP中创建收藏夹列表

在PHP中创建收藏夹列表,php,Php,我正在开发一个软件门户,用户可以在其中添加一个软件作为收藏夹,当他们这样做时,软件将显示在他们的个人资料中 为此,我计划做以下工作: “用户”表中有一个名为“收藏夹”的单独列。当用户将软件添加为收藏夹时,软件ID将使用逗号添加,如 "102,405,502,695,595" 为了显示,我计划使用PHP的explode函数,然后查询软件名 我的问题是:如果用户有大约100个收藏夹,会发生什么?加载列表需要很长时间吗?是否有其他方法来实现此概念?您可以使用另一个表来分配用户和软件之间的关系。当您注

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

为此,我计划做以下工作:

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

"102,405,502,695,595"
为了显示,我计划使用PHP的explode函数,然后查询软件名


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

您可以使用另一个表来分配用户和软件之间的关系。当您注意到只有几个条目时,在一个表中使用这样的序列化内容是很好的

从我的观点来看,这不好,不是因为你每次都要分解这个列表,因为那没关系

问题是,每当有人删除一个收藏夹时,脚本必须获取所有文本,分解,删除该id并再次更新

您应该使该表类似于
id | user | id | u software
,每个软件都有自己的行,然后选择、更新和删除将更快更容易


回答:如果你有1000个收藏夹,什么都不会发生。如果设置、机器和操作系统正常,PHP设计并能够处理大量数据。

这是一个可怕的错误

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

基本上,你需要三张桌子

  • 使用者
  • 软件
  • 用户安全软件
用户将拥有
id
username
软件将具有
id
softwareName
, 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 | userName
1  | Bob
2  | Alive
id | softwareName
1  | Firefox
2  | Chrome
3  | Internet Exploiter
userId | softwareId
1      | 2
1      | 3
2      | 1
联接表

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 Explorer,您可以通过简单的加入查询获得此信息。

我猜您不想将您的用户限制在最大收藏夹数

无论如何,在这种情况下,我会创建一个额外的数据库表,就像

表收藏夹关系 (int)用户id |(int)软件id


如果您要处理Fav条目,例如删除收藏夹、添加新收藏夹或为显示目的对其排序,这种方法将使代码更简单。此外,您不受大小、最大值或搜索语句的限制…

糟糕的设计。您可以创建表格,并将收藏夹拆分为一个单独的表格。其他任何事情都只会让你在+1之后因为提问而头疼,而不是构建错误。你提出的设计还有一个额外的问题——搜索数据要困难得多。标准化可以让你更容易地找到喜欢某样东西的人的数量,统计总喜欢的人的数量,统计用户的数量,等等。