多次元の値の配列、特に2つのテーブルをデータベースに挿入する最良の方法を考えていますか?すべてのレコードを1つのテーブルに挿入するクエリを作成する次のforeachループを作成しました。
foreach($newPosts as $value) {
if(!isset($postQuery)) {
$postQuery = "INSERT INTO posts (primay_key, col1, col2, col3, col4) VALUES ('$value[0]', FROM_UNIXTIME($value[4]), '$value[2]', '$value[1]', '$value[3]')";
} else {
$postQuery .= "('$value[0]', FROM_UNIXTIME($value[4]), '$value[2]', '$value[1]', '$value[3]')";
}
}
値が特に大きく、行がLongtextとしてフォーマットされているため、値の1つを別のテーブルに格納したいと思います。この値は、データベースを照会するときにもめったに呼び出されません。それを2番目のテーブルに移動すると、最初のテーブルのクエリ速度が上がると思いますか?あれは正しいですか?
この値を2番目のテーブルに移動する場合、自動インクリメント値である最初のテーブルのprimary_keyとテーブルをリンクします。最初のテーブルのprimary_keyを2番目のテーブルに挿入しながら、この多次元配列をループして両方のテーブルにデータを挿入するにはどうすればよいですか?各クエリを一度に1つずつ実行する場合は、LAST_INSERT_ID()を使用できることを知っています。ただし、一部の更新では数百行が挿入されるため、これは実行したくありません。
前もって感謝します!