我有两张表 book 和 gbook 。两者的结构相同;
id title author isbn year
然后我在两个不同的php页面上有两个网页表单,将数据发送到相应的表格 - “图书表单”和“ G图书表单”。
当我提交“书籍表格”时,书籍表格ID成功增加,同样当我提交“G书籍表格”时,gbook表格ID增加。但是,如何设置表格以便在两个表之间加入/共享id?这意味着,id将从最后一个表单插入的位置自动递增。
我想这样做的原因(以及不了解最佳方法)是因为我的“预订表格”允许用户手动添加书籍信息。而'G Book Form'会使用Google Books Api自动填充图书信息。
理想情况下,我希望我的 book 表格类似于
id
1
2
4
5
8
9
和 gbook 表类似;
id
3
6
7
这里有很多新的php / mysql所以任何建议或方向都值得赞赏。如有必要,我可以提供现有代码。
答案 0 :(得分:4)
替代可能有所帮助。将所有数据放在一个表中,添加一个额外的列(FK)并创建包含书籍类型的另一个表。
<强> tbl_books 强>
id booktype_id title author isbn year
的 tbl_booktypes 强>
id type
答案 1 :(得分:3)
您拥有的最佳方式可能是将它们放在同一个表格中,并使用一个特殊列来指定它的书籍类型。
答案 2 :(得分:1)
您可以通过php实现这一目标。每当其中一个表发生更改时,您将不得不运行alter query。例如:
如果要将值插入book表,则使用mysql_insert_id()
获取该表的增量ID,并在alter query中使用它。
$id = mysql_insert_id() + 1;
ALTER TABLE tablename AUTO_INCREMENT= $id;
虽然不推荐这种方法,但不是标准做法。
答案 3 :(得分:1)
另一个想法:
禁用两个表的自动增量。使用SQL命令MAX(iD)
从两个表中读取最大值并递增结果:
Select MAX(iD) From Book Form
并将其存储到变量中。然后执行Select MAX(iD) from G Book Form
存储它。比较两个值并将其递增1。
然而,在我看来,最好的想法来自blue112。有时候总结你的数据库是个好主意。