gpt4 book ai didi

MySQL 级联表

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:03 25 4
gpt4 key购买 nike

(我的网站是使用 PHP 和 MySQL 构建的。)

我的用户数据库结构主要由 2 个表组成:“医生”和“客户”。

但是,为了集成聊天系统,我需要创建第三个表,即'chat_users',它结合了医生和客户:'chat_users'表的字段是

    userid (unique integer),
username,
type (0:client, 1:doctor),
refid (id of the user in the associated clients or doctors table)

但我不想在每次插入/更新/删除客户或医生时手动插入/删除/更新此表。前段时间听说过级联表...

这样做的最佳性能方式是什么?我怎样才能实现它?

最佳答案

我不确定您是否会认为这是一个“答案”,但我可以评论一下您的数据库架构吗?

从长远来看,拥有以下表格你会更快乐:

user_account: (ua_id, ua_email, ua_username, ua_password, etc.)
doctor: (d_id, ua_id, etc.)
customer: (c_id, ua_id, etc.)

换句话说,让你们的关系走向相反的方向。然后,如果您希望能够通过简单地删除 user_account 来删除医生或客户,您可以添加以下关系约束:

ALTER TABLE `doctor`
ADD CONSTRAINT `doctor_fk_user_account` FOREIGN KEY (`ua_id`) REFERENCES `user_account` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `customer`
ADD CONSTRAINT `customer_fk_user_account` FOREIGN KEY (`ua_id`) REFERENCES `user_account` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

关于MySQL 级联表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18492629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com