1

古い登録システムと新しい登録システムがあります。(2つのテーブル)。
古いシステムには古いカテゴリがあり、新しいシステムには、まだ古いシステムに実装できなかったいくつかの新しいカテゴリがあります。
したがって、現時点では、すべてをシステムの1つに移動することはできません。

私の問題:
IDが「自動インクリメント」として動作し、何らかの形で相互に追従するように、2つのテーブルを接続する必要があります。

シナリオは次のとおりです
。//table#1 =古いシステム(車)
// table#2 =新しいシステム(トラクター、トラック、船舶)

新しい車がテーブル#1に登録されてID:13579を取得し、
次に他の車両がテーブル#2に登録されてID:13580を取得する必要があります。また
、新しい車がテーブル#1に登録されると、次のようになります。 ID:13581
など...

私の考えでは、次のようになります。
新しい車両をテーブルの1つに追加する直前に、常に他のテーブルを検索し、どちらが最後/最高のIDであるかを確認し、新しいIDを設定する前に+1を実行します。 。

更新20120614:
これが私が思いついた1つの解決策です:

$qry_tbl1 = mysql_query('SELECT MAX(id) AS tbl1_max_id FROM tbl1');
$get_tbl1 = mysql_fetch_assoc($qry_tbl1); extract($get_tbl1);

$qry_tbl2 = mysql_query('SELECT MAX(id) AS tbl2_max_id FROM tbl2');
$get_tbl2 = mysql_fetch_assoc($qry_tbl2); extract($get_tbl2);

$new_max_id = max(array($tbl1_max_id,$tbl2_max_id)) + 1;

これは良い解決策ではありませんが、私が仕事に取り掛かったのは1つだけです。
ユーザーが送信ボタンを押した直後に、これを実行して新しいレコードを挿入します。次に、スクリプトをさらに下に移動します$new_max_id。これは、追加のデータでそのレコードを更新することに基づいています...

これは許容できる解決策ですか?

4

1 に答える 1

1

このアプローチを使用できると思います。

または、次のようなフィールドを使用して新しいテーブルを作成できます。

id (auto increment), table_id, table_name

そして、そこに保存しますtable_id-はテーブルエンティティのIDであり、table_name-はこのIDに属するテーブルを決定する属性です。選択中に、このテーブルを使用して、使用するIDを決定する必要があります。これにより、IDの計算が回避されます。

于 2012-06-12T08:27:30.360 に答える