1

我有一个旧的注册系统和一个新的系统。(两张表)。
旧系统包含一个旧类别,而新系统包含一些尚无法在旧系统中实现的新类别。
因此,目前将所有内容都转移到其中一个系统不是一种选择。

我的问题:
我需要连接这两个表,以便 ID 以“自动增量”的方式运行,并且会以某种方式相互跟随。

这是一个场景:
// table#1 = 旧系统(汽车)
// table#2 = 新系统(拖拉机、卡车、船舶)

一辆新车在表#1中注册并获得ID:13579,
然后其他车辆在表#2中注册并应获得ID:13580,
当新车再次在表#1中注册时,它应该获得ID : 13581.
等等...

在我看来,它是这样的:
在将新车添加到其中一个表之前,始终在另一个表中查找并检查哪个是最后/最高 ID,并在设置新 ID 之前执行+1 .. .

更新 20120614:
这是我想出的一个解决方案:

$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;

这不是一个好的解决方案,但我必须工作的唯一一个。
用户点击提交按钮后,我立即执行此操作并插入新记录。然后,进一步向下脚本,基于$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 回答