Arrays vs Tables (PHP/MySQL)
认识吉米。他已经制定了新的人生目标,以证明巧克力是有史以来最好的冰淇淋口味。为此,他构建了一个简单的表单,其中包含单选按钮和名称的文本字段,以便他将链接发送给他的朋友。
他正在使用一个非常常见的设置,MySQL和PHP将表单提交保存在一个看起来像这样的表中:
selection
是味道的ID。这些风格存储在PHP数组中,因为他计划在以后的页面中使用青睐列表:
$flavors = array(
1=>"Chocolate",
2=>"Cherry",
....
);
表格很成功,他的朋友开始要求吉米添加新的选项,所以吉米决定把它带到一个新的水平,并在表格中添加国家,年龄,电子邮件和其他东西,但这次他怀疑把口味名称放在一个更好的主意, 国家,年龄和其他静态数据在数组中或将它们中的每一个保存在数据库表中,他无论如何都知道如何在查询中进行联接。
第一种方法
这意味着拥有一个包含许多数组的PHP文件,并且每次Jimmy需要这样的风格名称时都可以访问它:$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 处理与数据库中的 ID 关联的静态数据(如口味名称、国家/地区、年龄组等)的最佳方式是什么?
给定的环境细节:
- 数组是静态的,几乎永远不会改变
- 他将在几个页面上使用数据,因此硬编码不方便
- 添加新阵列通常更快
提前感谢您帮助他。