我正在实现自己的博客系统,以更好地理解 PHP、mySQL 和 jQuery AJAX 的面向对象方面。我在 Post_T 和 Tag_T 之间有一个多对多的关系,因此包括一个关联实体 PostTag_T。创建帖子时,我添加了检查标签是否已存在的函数,并添加新标签和映射,或者只是将映射添加到现有标签。
我注意到的不幸之处是,删除 Post 时,Tag_T 中的标记行仍然存在,而 PostTag_T 中的映射被删除(设置为 ON DELETE CASCADE)。如果标签未被任何其他帖子使用,我该如何删除标签?我在删除帖子时有帖子 ID。
有用的逻辑
使用删除的帖子 id,从 tag_t 中删除 posttag_t 中的 pID = 帖子 id 并且 posttag_t 中没有其他帖子 (pID) 使用相同的标签 id。
delete from tag_t where tID = (select tID from posttag_t where pID='post id') AND..
为了您的理智,这是一个视觉表示
在 Post_T 中创建 Post 行:
PostTag_T中post和tag的映射:
在 Tag_T 中创建标记行:
删除时:将 AJAX POST 与调用 url 中的 php 文件的数据一起使用(猜测这是我可能需要添加搜索表的查询的地方..)