实现表的N:M关系USERS
(PK:user_id,自动递增INT)和REQUESTS
(PK:request_id,自动递增INT),我创建了中间表USERS_GROUPS
(PK:两个 FK US_userid、US_requestid 与 USERS
和 REQUESTS
的 PK 一致)。当用户创建新请求时,我必须在 REQUESTS
内创建一条新记录.
INSERT INTO REQUESTS (...) VALUES (...);
同时我想在 USERS_GROUPS
里面创建一条新记录如加入USERS_GROUPS
与 USERS
和 REQUESTS
。第一个FK的值指向USERS
我知道,但是我如何找到指向我刚刚创建的记录的第二个 FK 的值?
换句话说,我想找到我刚刚创建的记录的 request_id 字段的值。这对我来说似乎有点令人困惑,我不知道如何实现它。
INSERT INTO USERS_GROUPS (US_userid,US_request_id) VALUES (...,?????);
这是我创建的第一个严肃的数据库模式,也是我必须管理的第一个 n:m 关系。我的观点正确吗?如果是,我将非常感谢您帮助实现它。如果不是,哪种方法是正确的?
最佳答案
您可以使用last-insert-id检索新创建的 ID。
你用来连接数据库的库通常都有一个函数,比如mysqli_insert_id或PDO::lastInsertId .
旁注:因为您正在数据库上执行多个(独立)查询,所以可能有必要将其全部包装在事务中。
关于n :m relationship 的 PHP 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29984554/