【问题标题】:PHP max length of an arrayPHP数组的最大长度
【发布时间】:2012-01-25 07:53:06
【问题描述】:

PHP 数组的最大长度是多少.. 我的要求是

我的数据库中大约有 4000 部电影,用户非常多,现在有 1500 个(增加)。每个成员只能对电影评分一次。

所以我在用户表中创建了一行,用于存储用户评分的电影。我将其保存为以下格式

user_id   |  rated_films
-----------------------------------------
12        |  1111,1025,3541,2354,1584,3691,2451

每当用户点击评分按钮时,我都会检查此列..

这是正确的方法。我想知道我是否为这个评级制作了一个单独的表格,比如

user_id  |  Film_id
---------------------
12       |  10245
12       |  20145

这会挂起应用程序的进程吗?假设是否所有用户都会对所有电影评分

请帮我输入正确的代码

谢谢

【问题讨论】:

  • 您仅限于memory_limit。所以我更喜欢第二种方法,因为它更适合加入表并将一些逻辑放入 sql
  • 无论哪种方式,您都需要规范化您的表格并使用第二个选项。其他任何事情都会变得一团糟,迟早会把你逼到角落里。
  • 我不明白,你的问题与 PHP 数组有什么关系。关于您的数据库布局:第二种方式是标准规范化方式,用于存储此类信息。在几乎所有情况下,这都是更好的方法。
  • 如果您选择第一个选项,您将永远不知道有多少用户以及哪些用户评价了哪部电影。假设您打开一个带有电影 X 的页面并想要列出所有已评分的用户......您只是无法构建一个返回该信息的查询。 (好吧,您可以获取此信息,但以资源密集/昂贵的方式)。正如其他人所说 - 第二种方式。
  • 如果您使用的是非常大的数组,我建议您查看Judy Arrays

标签: php mysql database phpmyadmin


【解决方案1】:

您的第二个解决方案是使用多对多关系表。第一个解决方案太笨拙了。似乎不太可能每个用户都会对每部电影进行评分,并且无论如何您的查询可能会更加包含,因此 mysql 应该很容易处理这个问题。

【讨论】:

    【解决方案2】:

    我认为没有限制。问题是内存。您可以在 php.ini 中编辑 php 允许用户使用的内存。在我看来,您不应该使用数组来完成这项任务。这是一个数据库任务。 如果您需要数组中的某些内容,则应使用限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多