私が行っている小さなプロジェクトのヒントと指針を探しています。いくつかのアイデアがありますが、それらがベストプラクティスであるかどうかはわかりません。私はmysqlとphpを使用しています。
データベースに nomsing というテーブルがあります。
整数である行IDと呼ばれる主キーがあります。
次に、このテーブルを参照する他のテーブルが約 8 つあります。これは、nomplu、accsing、accplu、datsing、datplu などと呼ばれます。それぞれに、命名の主キーを参照する列があります。
私のphpコードを使用すると、テーブルに挿入するすべての情報が得られます.1つを除いて、nomsingテーブルの行IDプライマリキーです。そのため、php は次のような一連の挿入を生成します。
INSERT INTO nomsing(word,postress,gender) VALUES (''велосипед","8","mask").
INSERT INTO nomplu(word,postress,NOMSING?REFERENCE) VALUES (''велосипеды","2",@the reference to the id of the first insert@).
さらに挿入がありますが、これは要点を理解しています。2 番目の挿入は、最初の挿入の自動生成 ID を参照する必要があります。私はこれをトランザクションとして機能させたので、すべての挿入が完了するか、まったく挿入されないはずです。
私が持っている1つのアイデアは、IDを自動生成せず、phpで自分で生成することです。そうすれば、トランザクションの前に指定された ID を知ることができますが、ID が既にデータベースにあるかどうかを確認する必要があります。
私が持っている別のアイデアは、最初の挿入を行い、次にその挿入の行 ID を php で照会してから、2 番目の挿入を行うことです。どちらも機能するはずですが、最適なソリューションとは思えません。私はデータベースのトランザクション機能にあまり詳しくありませんが、この場合の最善のアプローチは何でしょうか。挿入してからIDを照会し、残りのクエリを実行するという考えは好きではありません。非常に非効率的であるか、おそらく私が間違っているようです。