gpt4 book ai didi

php - 数组与表(PHP/MySQL)

转载 作者:IT老高 更新时间:2023-10-28 23:46:12 24 4
gpt4 key购买 nike

认识吉米。他制定了新的人生目标,以证明巧克力是有史以来最好的冰淇淋口味。为此,他构建了一个带有单选按钮和名称文本字段的简单表单,以便他可以将链接发送给他的 friend 。

enter image description here

他正在使用一种非常常见的设置,MySQL 和 PHP 将表单提交保存在如下所示的表中:

enter image description here

selection 是 flavor 的 id。口味存储在 PHP 数组中,因为他计划在以后的页面中使用喜爱列表:

$flavors = array(
1=>"Chocolate",
2=>"Cherry",
....
);

表单很成功,他的 friend 们开始要求 Jimmy 添加新选项,因此 Jimmy 决定更上一层楼,在表单中添加国家、年龄、电子邮件和其他内容,但这次他他怀疑将 flavor 名称、国家、年龄和其他静态数据放在数组中还是将它们中的每一个保存在数据库表中是否更好,他知道如何在查询中进行连接。

第一种方法

意味着拥有一个包含许多数组的 PHP 文件,并且每次 Jimmy 需要类似以下的 flavor 名称时都可以访问它:

$query = mysql_query("SELECT name, flavor FROM votes")
while($row = mysql_fetch_assoc($query)){
echo $row["name"]." - ".$flavors[$row["flavor"]];
}

第二种方法

意味着数据库中有很多表,并且每次他需要这样的名称时都必须进行连接:

$query = mysql_query("SELECT name, flavor FROM votes LEFT JOIN flavors 
WHERE votes.flavor = flavors.flavor");

while($row = mysql_fetch_assoc($query)){
echo $row["name"]." - ".$row["flavor"];
}

虽然看起来差别不大,但这对 Jimmy 来说是一个重要的决定,因为他想在未来构建更多更大的形式。

Jimmy 处理与数据库中的 ID 相关联的静态数据(例如 flavor 名称、国家/地区、年龄组等)的最佳方式是什么?

鉴于环境细节:

  1. 数组是静态的,几乎永远不会改变
  2. 他将在多个页面上使用数据,所以硬编码不方便
  3. 添加新数组通常更快

提前感谢您帮助他。

最佳答案

第二个选项当然更具可扩展性,几乎在各个方面都更好,唯一的论点可能是性能,因为他的数据最终会变得非常大。但即使在那个时候,jimmy 也可以使用 memcache、x-cache 之类的技术轻松地缓存来自新 flavor 表的结果,甚至可以编写代码,使用 flavor 数据库动态创建具有 flavor 数组的 php 文件。我很困惑为什么像你这样的人会问这样的问题?!​​

关于php - 数组与表(PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com