ホームページ  >  に質問  >  本文

java - 関連テーブルを変更する方法

属性テーブル attr
製品テーブル item
関連付けテーブル item_attr

属性テーブルのフィールド
cat_idtitle

商品テーブルのフィールド
item_idtitle

商品テーブルのテーブルフィールド
item_attr_iditem_idattr_id

たとえば、属性のレコードが 5 つあり、cat_id は 1、2、3、4、5 です。
製品を追加し、属性 2 と 5 を選択します

関連付けテーブルは 2 つのレコードになるはずです。ここで変更する場合は、たとえば 5 を削除して 4 を追加します。通常はこれに当てはまります。

次に、最初に元の古い attr_id を取得し、次に 1 つずつ検索して新しい attr_id が存在するかどうかを確認します。存在しない場合は、削除して新しい ## を再利用します。 #attr_id 1 つずつ検索して attr_id があるかどうかを確認し、スキップされた場合は を追加します。

もっと良い方法はないでしょうか? 最初は、すべて削除してから新しいものを追加するという考えでした。これは非科学的ではありませんか?

PHP中文网PHP中文网2711日前690

全員に返信(3)返信します

  • 某草草

    某草草2017-05-18 10:46:26

    関連付けテーブルは在庫テーブルである必要があります。 1 つの製品 + 1 つの属性で在庫を定義します。上で述べたのは、走査して比較した後、変更があれば修正し、変更がなければ削除するということです。これは正しいです。

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-18 10:46:26

    後で言ったことは科学的ですが、前に言ったことは複雑すぎて非科学的です。
    まず関連付けテーブルの item_id に基づいてすべてを削除し、次にすべてを追加します。
    item_id = 1 の item_attr から削除;
    item_attr (item_id, attr_id) の値に挿入します (1, 1), (1, 2), ( 1、2); これが最も効率的です

    返事
    0
  • 高洛峰

    高洛峰2017-05-18 10:46:26

    それらをすべて削除し、最新のものに基づいてすべてを追加します。シンプルなロジックで最高の効率

    返事
    0
  • キャンセル返事