100 lines
3.9 KiB
Plaintext
100 lines
3.9 KiB
Plaintext
CREATE TABLE chat_mysql.users (
|
||
username VARCHAR(50) PRIMARY KEY,
|
||
password VARCHAR(255) NOT NULL
|
||
);
|
||
SET SQL_SAFE_UPDATES = 0;
|
||
DELETE FROM chat_mysql.users;
|
||
SET SQL_SAFE_UPDATES = 1;
|
||
INSERT INTO chat_mysql.users (username, password)
|
||
VALUES
|
||
('admin', '123'),
|
||
('query', '123'),
|
||
('tom', '123'),
|
||
('jack', '123'),
|
||
('lucy', '123');
|
||
select * from chat_mysql.users;
|
||
|
||
|
||
CREATE TABLE chat_mysql.contacts (
|
||
user_name VARCHAR(50) NOT NULL,
|
||
contact_name VARCHAR(50) NOT NULL,
|
||
|
||
PRIMARY KEY (user_name, contact_name),
|
||
|
||
FOREIGN KEY (user_name)
|
||
REFERENCES chat_mysql.users(username),
|
||
|
||
FOREIGN KEY (contact_name)
|
||
REFERENCES chat_mysql.users(username)
|
||
);
|
||
INSERT INTO chat_mysql.contacts (user_name, contact_name)
|
||
VALUES
|
||
('admin', 'query'),
|
||
('admin', 'tom'),
|
||
('admin', 'jack'),
|
||
('admin', 'lucy'),
|
||
('query', 'admin'),
|
||
('query', 'tom'),
|
||
('tom', 'admin'),
|
||
('tom', 'query');
|
||
select * from chat_mysql.contacts;
|
||
|
||
CREATE TABLE chat_mysql.messages (
|
||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||
sender_name VARCHAR(50) NOT NULL,
|
||
receiver_name VARCHAR(50) NOT NULL,
|
||
content VARCHAR(1000) NOT NULL,
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
|
||
FOREIGN KEY (sender_name)
|
||
REFERENCES chat_mysql.users(username),
|
||
|
||
FOREIGN KEY (receiver_name)
|
||
REFERENCES chat_mysql.users(username)
|
||
);
|
||
INSERT INTO chat_mysql.messages
|
||
(sender_name, receiver_name, content, created_at)
|
||
VALUES
|
||
-- admin ↔ query
|
||
('admin', 'query', '你好,最近怎么样?', '2026-09-20 10:00:00'),
|
||
('query', 'admin', '挺好的,你呢?', '2026-09-20 10:01:00'),
|
||
('admin', 'query', '我也不错,最近在做聊天项目。', '2026-09-20 10:02:00'),
|
||
('query', 'admin', '听起来不错,是用 Vue 做的吗?', '2026-09-20 10:03:00'),
|
||
('admin', 'query', '对,前端使用 Vue2,后端使用 Node.js。', '2026-09-20 10:04:00'),
|
||
('query', 'admin', '那数据库使用 MySQL?', '2026-09-20 10:05:00'),
|
||
('admin', 'query', '对,目前正在完善聊天功能。', '2026-09-20 10:06:00'),
|
||
|
||
-- admin ↔ tom
|
||
('admin', 'tom', '你今天有空吗?', '2026-09-20 11:00:00'),
|
||
('tom', 'admin', '有啊,怎么了?', '2026-09-20 11:01:00'),
|
||
('admin', 'tom', '想和你讨论一下项目。', '2026-09-20 11:02:00'),
|
||
('tom', 'admin', '可以,什么时间方便?', '2026-09-20 11:03:00'),
|
||
('admin', 'tom', '下午三点怎么样?', '2026-09-20 11:04:00'),
|
||
('tom', 'admin', '没问题。', '2026-09-20 11:05:00'),
|
||
|
||
-- admin ↔ jack
|
||
('jack', 'admin', '周末一起吃饭吗?', '2026-09-20 12:00:00'),
|
||
('admin', 'jack', '可以啊,去哪吃?', '2026-09-20 12:01:00'),
|
||
('jack', 'admin', '附近找一家餐厅吧。', '2026-09-20 12:02:00'),
|
||
('admin', 'jack', '好的,晚上六点怎么样?', '2026-09-20 12:03:00'),
|
||
('jack', 'admin', '可以,到时候联系。', '2026-09-20 12:04:00'),
|
||
|
||
-- admin ↔ lucy
|
||
('admin', 'lucy', '最近项目进展怎么样?', '2026-09-20 13:00:00'),
|
||
('lucy', 'admin', '目前进展还不错。', '2026-09-20 13:01:00'),
|
||
('admin', 'lucy', '还有哪些功能没有完成?', '2026-09-20 13:02:00'),
|
||
('lucy', 'admin', '主要是消息通知和联系人功能。', '2026-09-20 13:03:00'),
|
||
('admin', 'lucy', '好的,我这边也在做消息功能。', '2026-09-20 13:04:00'),
|
||
|
||
-- query ↔ tom
|
||
('query', 'tom', '你知道聊天项目怎么做 WebSocket 吗?', '2026-09-20 14:00:00'),
|
||
('tom', 'query', '知道一些,可以用来做实时消息。', '2026-09-20 14:01:00'),
|
||
('query', 'tom', '我也准备把项目改成 WebSocket。', '2026-09-20 14:02:00'),
|
||
('tom', 'query', '这样聊天消息可以实时推送。', '2026-09-20 14:03:00'),
|
||
|
||
-- tom ↔ query
|
||
('tom', 'query', '联系人比较多的时候怎么办?', '2026-09-20 15:00:00'),
|
||
('query', 'tom', '不需要每个联系人都创建一个 WebSocket。', '2026-09-20 15:01:00'),
|
||
('tom', 'query', '一个用户维护一个 WebSocket 连接就可以了。', '2026-09-20 15:02:00');
|
||
select * from chat_mysql.messages;
|