PHP和MySQL子查询中的最佳实践

时间:2015-03-27 21:45:29

标签: php mysql

我试着弄清楚下一个例子的最佳做法是什么 我有一个带有2个mysql表的订单系统。 sh_orders是订单标题信息的MySQL表,结构如下:

id | doc_nr | order_date | date_added

然后,我有sh_orders_items,结构类似于:

id | order_id | oPos | product | quantity | date_added

我的问题:在向新订单添加头寸时,生成新订单ID的最佳方法是什么? 现在,我使用"TEMP_". md5( uniqid() )作为订单的新ID,在用户保存订单后,我使用mysql_insert_id()更新sh_orders_items 但是,使用这种情况我会面临过时的行,临时的order_id来自未保存的订单

有人可以给我一个更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

在订购时插入您的第一个表格(您将保存另一个表格)使用MySQL的内置last_insert_id您可以获取插入的ID的值你的主表,然后用它来保存子元素。这样,您就可以避免孤儿或父记录的任何可能性。

如果需要,MySQL可以级联删除链接数据,以确保在正常操作期间可能通过或获取孤立的任何内容都被截断。