2011-01-27 13 views
3

多対多テーブルがあり、そこにいくつかのフォーム情報を入力します。私は最近、このフォームを動的にしました。そのため、入力要素の値が変更されると、AJAX経由でデータベースに送られます。MySQLの多対多。削除したり編集したりするには?

だから私の質問は次のとおりです。 は、それは試してみて、存在価値を見つける、それらを編集し、ないものを作成し、もうOR使用されていないものを削除するために高速です、私はすべてを削除する必要がありますidの値、そして新しいものすべてを挿入しますか?

コメントに応じて、elaboration。

  • フォームには、約10個のフィールドがあります。それらのいくつかは必須であり、一部は必須ではない。アクセスするたびに、ランダムな識別子が生成されます。
  • ユーザーがフォームの塗りつぶしを開始すると、要素のフォーカスが失われた後、フォーム全体がAJAXを介して送信され、空でないすべての値が多対多の表に入力されます。
  • 表は、3つのフィールドがありますフォームidentificator要素名要素値と、

質問の言い直し: 必要なフォームIDを持つエントリをすべて削除するか、フィールドを見つけて編集しますか?

+0

貴重な情報を得るために、Many2Manyテーブルの形や、AJAXフォームがどのように影響しているかを詳しく説明しなければならないと思います。 – Romain

答えて

3

それはあなたがトランザクションに正しく

少ないコード==少ない

  • ハンドルエラーがこれを行うことを確認し、すべての既存の関係を削除し、新しいものに

    • を追加するために、以下のコードが必要になりますバグ、開発時間の短縮それは間違いなく速いです。

  • +0

    +1。何千もの行がない限り、遅延は目立たないはずです。とにかく、何千もの行が正常なUIでは起こりえません。 DBへの往復回数は、1回の削除でも少なくなります。 – 9000

    1

    このようなケースでは、常に&の挿入をすべて削除します。私はそれが検索、編集、作成、削除するより多くの処理時間があると思うだろう。

    また見て試すことができます。新しいレコードを挿入したり、既存の更新します

    INSERT INTO table (field1, field2) VALUES ('Value1', 'Value2') 
    ON DUPLICATE KEY UPDATE field1 = 'Value1' 
    

    - 私はまだ削除を疑うだろうが、/速いと挿入 - フィールドの数に応じて、あなたはいつでも更新しています。

    関連する問題