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 中国語 Web サイトの他の関連記事を参照してください。