在 MySQL 中存储数组数据:替代方法
虽然将数组存储在单个 MySQL 字段中似乎是一个方便的解决方案,但实际上通常不推荐,因为它会损害数据完整性和高效的查询功能。相反,调整数据库架构以适应数组的不同元素更为合适。
关系架构重新设计示例
考虑具有以下结构的数组:
$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), );
要有效地将此数组存储在关系数据库中,可以创建这样的表:
CREATE TABLE test ( id INTEGER UNSIGNED NOT NULL, a INTEGER UNSIGNED NOT NULL, b INTEGER UNSIGNED NOT NULL, c INTEGER UNSIGNED NOT NULL, PRIMARY KEY (id) );
存储数组数据的替代选项
如果绝对需要将数组存储在单个字段中,可以使用序列化和 JSON 编码等选项:
使用 JSON 编码的示例
假设我们要使用 JSON 编码存储数组 $a:
$json_encoded = json_encode($a);
检索数组来自数据库:
$json_decoded = json_decode($json_encoded, true);
这种方法允许我们直接访问数组元素。
以上是如何在 MySQL 中存储数组数据:单字段与关系模式?的详细内容。更多信息请关注PHP中文网其他相关文章!