Stockage des données de tableau dans MySQL : approches alternatives
Bien que stocker un tableau dans un seul champ MySQL puisse sembler une solution pratique, c'est généralement déconseillé car cela compromet l’intégrité des données et les capacités d’interrogation efficaces. Au lieu de cela, il est plus approprié d'ajuster le schéma de la base de données pour s'adapter aux différents éléments du tableau.
Exemple de refonte du schéma relationnel
Considérons un tableau avec la structure suivante :
$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), );
Pour stocker efficacement ce tableau dans une base de données relationnelle, une table comme celle-ci pourrait être créée :
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) );
Options alternatives pour le stockage des données du tableau
Si stocker le tableau dans un seul champ est absolument nécessaire, des options telles que la sérialisation et l'encodage JSON peuvent être utilisées :
Exemple d'utilisation de l'encodage JSON
Supposons que nous souhaitions stocker le tableau $a en utilisant l'encodage JSON :
$json_encoded = json_encode($a);
Pour récupérer le tableau depuis la base de données :
$json_decoded = json_decode($json_encoded, true);
Cette approche nous permet d'accéder directement aux éléments du tableau.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!