在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中文網其他相關文章!