| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- CREATE DATABASE IF NOT EXISTS im DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- USE im;
- CREATE TABLE IF NOT EXISTS im_user (
- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
- username VARCHAR(64) NOT NULL,
- password VARCHAR(128) NOT NULL,
- nickname VARCHAR(64) NOT NULL DEFAULT '',
- phone VARCHAR(20) NOT NULL DEFAULT '',
- signature VARCHAR(128) NOT NULL DEFAULT '',
- allow_search_account TINYINT NOT NULL DEFAULT 1 COMMENT '1允许通过账号搜索',
- allow_search_phone TINYINT NOT NULL DEFAULT 1 COMMENT '1允许通过手机号搜索',
- allow_add_friend TINYINT NOT NULL DEFAULT 1 COMMENT '1允许他人添加好友',
- avatar_ver INT NOT NULL DEFAULT 0,
- status TINYINT NOT NULL DEFAULT 1 COMMENT '1正常 0禁用 2系统账号',
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (id),
- UNIQUE KEY uk_username (username),
- KEY idx_phone (phone)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- CREATE TABLE IF NOT EXISTS im_sms_code (
- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
- phone VARCHAR(20) NOT NULL,
- scene VARCHAR(16) NOT NULL,
- code VARCHAR(8) NOT NULL,
- expire_at DATETIME NOT NULL,
- used TINYINT NOT NULL DEFAULT 0,
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (id),
- KEY idx_phone_scene (phone, scene, created_at)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- CREATE TABLE IF NOT EXISTS im_friend (
- uid BIGINT UNSIGNED NOT NULL,
- friend_uid BIGINT UNSIGNED NOT NULL,
- remark VARCHAR(64) NOT NULL DEFAULT '',
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (uid, friend_uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- CREATE TABLE IF NOT EXISTS im_message (
- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
- from_uid BIGINT UNSIGNED NOT NULL,
- to_uid BIGINT UNSIGNED NOT NULL,
- msg_type TINYINT NOT NULL DEFAULT 1,
- content TEXT NOT NULL,
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (id),
- KEY idx_to_uid (to_uid, id),
- KEY idx_from_uid (from_uid, id),
- KEY idx_pair (from_uid, to_uid, id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- CREATE TABLE IF NOT EXISTS im_conversation (
- uid BIGINT UNSIGNED NOT NULL,
- peer_uid BIGINT UNSIGNED NOT NULL,
- last_msg_id BIGINT UNSIGNED NOT NULL DEFAULT 0,
- last_content VARCHAR(256) NOT NULL DEFAULT '',
- last_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- unread INT NOT NULL DEFAULT 0,
- PRIMARY KEY (uid, peer_uid),
- KEY idx_uid_time (uid, last_time)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- -- 系统账号:文件传输助手。密码不可登录(status=2)
- CREATE TABLE IF NOT EXISTS im_friend_request (
- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
- from_uid BIGINT UNSIGNED NOT NULL,
- to_uid BIGINT UNSIGNED NOT NULL,
- status TINYINT NOT NULL DEFAULT 0 COMMENT '0待处理 1已同意 2已拒绝',
- message VARCHAR(64) NOT NULL DEFAULT '',
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (id),
- UNIQUE KEY uk_from_to (from_uid, to_uid),
- KEY idx_to_status (to_uid, status)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- CREATE TABLE IF NOT EXISTS im_sticker_pack (
- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
- name VARCHAR(64) NOT NULL,
- version INT NOT NULL DEFAULT 1,
- sort_order INT NOT NULL DEFAULT 0,
- status TINYINT NOT NULL DEFAULT 1,
- PRIMARY KEY (id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- CREATE TABLE IF NOT EXISTS im_sticker (
- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
- pack_id BIGINT UNSIGNED NOT NULL,
- code VARCHAR(64) NOT NULL,
- name VARCHAR(64) NOT NULL DEFAULT '',
- file_path VARCHAR(255) NOT NULL,
- sha256 VARCHAR(64) NOT NULL DEFAULT '',
- mime VARCHAR(32) NOT NULL DEFAULT 'image/png',
- sort_order INT NOT NULL DEFAULT 0,
- PRIMARY KEY (id),
- UNIQUE KEY uk_pack_code (pack_id, code),
- KEY idx_pack (pack_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- CREATE TABLE IF NOT EXISTS im_file (
- id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
- from_uid BIGINT UNSIGNED NOT NULL,
- name VARCHAR(255) NOT NULL,
- mime VARCHAR(64) NOT NULL DEFAULT 'application/octet-stream',
- size INT NOT NULL DEFAULT 0,
- sha256 VARCHAR(64) NOT NULL DEFAULT '',
- file_path VARCHAR(255) NOT NULL DEFAULT '',
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (id),
- KEY idx_from (from_uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- -- 系统账号:文件传输助手。密码不可登录(status=2)
- INSERT INTO im_user (id, username, password, nickname, phone, signature, status)
- VALUES (1, 'filehelper', '-', '文件传输助手', '', '文件助手', 2)
- ON DUPLICATE KEY UPDATE nickname=VALUES(nickname), signature=VALUES(signature), status=VALUES(status);
- INSERT INTO im_sticker_pack (id, name, version, sort_order, status)
- VALUES (1, '默认表情', 1, 1, 1), (2, '手势', 1, 2, 1)
- ON DUPLICATE KEY UPDATE name=VALUES(name), status=VALUES(status);
|