61 lines
3.0 KiB
SQL
61 lines
3.0 KiB
SQL
-- 好友系统数据库表
|
||
-- 请在服务器数据库中执行此脚本
|
||
|
||
-- 1. 好友关系表
|
||
CREATE TABLE IF NOT EXISTS `eb_friend` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`user_id` int(11) NOT NULL COMMENT '用户ID',
|
||
`friend_id` int(11) NOT NULL COMMENT '好友ID',
|
||
`remark` varchar(50) DEFAULT NULL COMMENT '好友备注',
|
||
`status` int(11) NOT NULL DEFAULT 1 COMMENT '状态:1-正常 0-已删除',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_user_friend` (`user_id`, `friend_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_friend_id` (`friend_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='好友关系表';
|
||
|
||
-- 2. 好友请求表
|
||
CREATE TABLE IF NOT EXISTS `eb_friend_request` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`from_user_id` int(11) NOT NULL COMMENT '发起请求的用户ID',
|
||
`to_user_id` int(11) NOT NULL COMMENT '接收请求的用户ID',
|
||
`message` varchar(200) DEFAULT NULL COMMENT '验证消息',
|
||
`status` int(11) NOT NULL DEFAULT 0 COMMENT '状态:0-待处理 1-已接受 2-已拒绝',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '处理时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_from_user` (`from_user_id`),
|
||
KEY `idx_to_user` (`to_user_id`),
|
||
KEY `idx_status` (`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='好友请求表';
|
||
|
||
-- 3. 用户黑名单表
|
||
CREATE TABLE IF NOT EXISTS `eb_user_blacklist` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`user_id` int(11) NOT NULL COMMENT '用户ID',
|
||
`blocked_user_id` int(11) NOT NULL COMMENT '被拉黑的用户ID',
|
||
`reason` varchar(200) DEFAULT NULL COMMENT '拉黑原因',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_user_blocked` (`user_id`, `blocked_user_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_blocked_user_id` (`blocked_user_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户黑名单表';
|
||
|
||
-- 4. 私聊会话表(如果不存在)
|
||
CREATE TABLE IF NOT EXISTS `eb_conversation` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`user1_id` int(11) NOT NULL COMMENT '用户1 ID(较小的ID)',
|
||
`user2_id` int(11) NOT NULL COMMENT '用户2 ID(较大的ID)',
|
||
`last_message_id` bigint(20) DEFAULT NULL COMMENT '最后一条消息ID',
|
||
`last_message_time` datetime DEFAULT NULL COMMENT '最后消息时间',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_users` (`user1_id`, `user2_id`),
|
||
KEY `idx_user1` (`user1_id`),
|
||
KEY `idx_user2` (`user2_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='私聊会话表';
|