我想要实现的是,我想自动化用户和文件夹表之间的表值。由于它是多对多关系,我创建了user_folders表。当前,服务器(nodejs)使用userid、clientfolderid和一些书签数组(现在不重要)获取请求。它通过从user_folders表中进行选择来检查用户是否已经拥有此文件夹,如果它不存在,则将新行插入到文件夹表中。然后它必须发送另一个语句插入到user_folders表中。
所以我必须“手动”更新users_folder表。我想这是一个常见问题,想知道是否有模式或经过验证的解决方案?奇怪的是,MySQL 使用 AFTER DELETE 触发器自动处理行的删除,但没有(至少我知道)使用 AFTER INSERT 触发器实现自动化。
正如我已经说过的 AFTER INSERT 触发器可能会解决它,但我认为不可能将一些额外的参数传递给 AFTER INSERT 触发器。在我的情况下,这将是 user_id 和 folder_client_id。
我正在考虑一个解决方案,我可以创建另一个名为tmp_folder的表,它看起来像:
tmp_folder
-- id
-- title
-- changed
-- user_id
-- folder_client_id
然后在该表上创建一个 AFTER INSERT 触发器,该触发器插入到文件夹和 user_folders 中,然后再次从tmp_folder中删除该行。这是正确的方法还是有更好的方法?
我基本上会对书签和 user_bookmarks 表做同样的事情。最好的办法是,如果甚至可以使用 user_id 和 folder_client_id 将文件夹然后所有者插入到user_folders表中,然后使用 user_id 和默认的 folder_client_id 为 -1 或稍后更新的东西将多个其他用户插入到user_folders中。
同时感谢您的阅读,希望您能帮助我:)
PS:在 m-2-m 关系中的其他 2 个表之间是否有表的名称?