【发布时间】:2011-10-16 03:19:09
【问题描述】:
我有个问题。
我在 MySQL 中有三张表,一张包含 tags,一张包含 posts,第三张 links tags and posts 使用 ids。
当我添加包含标签的帖子时,我会插入标签,然后在表格之间建立链接。现在我有两个父表(标签和帖子)和一个链接它们的子表。
我的目标:当我删除一个帖子时,我想删除标签和帖子之间的所有链接,我还想删除与其他帖子没有链接但依赖的标签在我删除的帖子上。
这是我的桌子。我知道他们没有很好的联系。我认为,如果我将 posts_tags 设为 posts_tags 父级,将标签设为 posts_tags 父级将解决我的问题,但如果从帖子中级联删除,标签也将被删除。只有当它们与其他帖子之间没有链接时,我才希望它们被删除。
我忘了说我使用 zend 框架 遇到了这个问题,我仍然需要在 zend 中解决它。
帖子 字段类型 Null 默认注释 id int(11) 否 标题 varchar(200) 否 描述 longtext 否 地址 varchar(100) 否 添加日期时间 否 post_tag 字段类型 Null 默认链接到评论 id_tag int(11) No 0 etichete -> id id_post int(11) No 0 turism -> id 标签 字段类型 Null 默认注释 id int(11) 否 名称 varchar(50) 否
谢谢
【问题讨论】:
-
“经典查询” - 麻烦只在您的脑海中。如果您可以编写原始 sql 并且知道您在做什么 - 有时这是获得奖品的最快方法 :) 在过去的 10 年里,我根本不使用原始 sql。但
application architecture and design是我的爱好 :) 从小型 ishop 到 1k 并发客户端数据存储 -
mapper 是向 SOA 迈出的一步——它确实是一项“服务”工作,可以返回应用程序期望的数据(对象、数组等)。
-
如果是,请不要忘记“接受”答案。
标签: php mysql zend-framework database-design