【发布时间】:2014-08-22 19:45:10
【问题描述】:
如果用户或管理员想要从站点中完全删除用户。您将如何设置查询以从包含用户 ID 的每个表/子表中删除该用户。这是我的表的列表,其中包含单个用户的可能 ID 所在的子表。
- 用户
- 相册 - user_id
- 阻止 - user1_id
- blogdata_cmets - comment_poster
- blogdata_feedback - feedback_userid
- 朋友 - user1_id 或 user2_id
- 消息 - message_creator OR message_target
- 通知 - notification_targetuser 或 notification_triggeredby
- photo_cmets - photo_comment_poster
- streamdata - streamitem_creator 或 streamitem_target
- streamdata_cmets - 评论海报
- streamdata_feedback - feedback_userid
- 用户照片 - photo_ownerid
【问题讨论】:
-
如果你有外键约束,那么你可以使用DELETE CASCADE,否则你可能需要依次从每个表中删除
-
您可以使用 ORM,例如 Doctrine,在这种情况下,它可能会使生活轻松 100 倍。
-
我可以在每张表上设置一个外键吗?我是否将其设置为每个包含用户特定 ID 的子表?
-
@bali182 与“正确”不同的是完整的
-
这样的?
ALTER albums ADD CONSTRAINT user1_id FOREIGN KEY foreign_key_name(user_id) REFERENCES parent_table(user) ON DELETE action ON UPDATE action
标签: php delete-row sql-delete