三张表 用来实现群组功能
CREATE TABLE `group` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '群 ID', `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '群类型[1:普通群;2:企业群;]', `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '群名称', PRIMARY KEY (`id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='群'; CREATE TABLE `group_apply` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增 ID', `group_id` int unsigned NOT NULL DEFAULT '0' COMMENT '群组 ID', `user_id` int unsigned NOT NULL DEFAULT '0' COMMENT '用户 ID', `status` int NOT NULL DEFAULT '1' COMMENT '申请状态', `updated_at` datetime NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='申请加群表'; CREATE TABLE `group_member` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增 ID', `group_id` int unsigned NOT NULL DEFAULT '0' COMMENT '群组 ID', `user_id` int unsigned NOT NULL DEFAULT '0' COMMENT '用户 ID', `leader` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '成员属性[0:普通成员;1:管理员;2:群主;]', ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='群成员表';
疑问
- 用户退出群后 是用一个状态标记好 还是直接 删除 group_member 表的 用户记录好