PHP实现n:m关系

时间:2015-05-01 09:37:05

标签: php mysql

为了实现表USERS的N:M关系(PK:user_id是自动增量INT)和REQUESTS(PK:request_id是自动增量INT),我是创建了中间表USERS_GROUPS(PK:两个FK US_userid,US_requestid,它与USERSREQUESTS的PK一致。当用户创建新请求时,我必须在REQUESTS内创建新记录。

INSERT INTO REQUESTS (...) VALUES (...);

与此同时,我想在USERS_GROUPS内创建一条新记录,以便USERS_GROUPSUSERS加入REQUESTS。我知道指向USERS的第一个FK的值,但是我怎么能找到第二个FK的值指向我刚刚创建的记录?

换句话说,我想找到我刚刚创建的记录的字段request_id的值。这对我来说似乎有点混乱,我不知道如何实现它。

INSERT INTO USERS_GROUPS (US_userid,US_request_id) VALUES (...,?????);

这是我创建的第一个严肃的数据库模式,也是我必须管理的第一个n:m关系。我的观点是否正确?如果是的话,我非常感谢您对如何实现它的帮助。如果不是哪种方法是正确的?

1 个答案:

答案 0 :(得分:2)

您可以使用last-insert-id检索新创建的ID。

用于连接数据库的库通常具有相应的功能,例如mysqli_insert_idPDO::lastInsertId

旁注:因为您正在对数据库执行多个(独立)查询,所以可能需要将它全部包装在事务中。