jifuyun-order-v1/chat-server-2/database.js

40 lines
948 B
JavaScript

const sqlite3 = require('sqlite3').verbose();
const path = require('path');
const dbPath = path.resolve(__dirname, 'chat.db');
const db = new sqlite3.Database(dbPath);
// 用户表
db.run(`CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
token TEXT NOT NULL,
last_active DATETIME DEFAULT CURRENT_TIMESTAMP
)`);
// 消息表
db.run(`CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sender_id TEXT NOT NULL,
receiver_id TEXT,
group_id TEXT,
content TEXT NOT NULL,
is_withdrawn BOOLEAN DEFAULT 0,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
)`);
// 群组表
db.run(`CREATE TABLE IF NOT EXISTS groups (
id TEXT PRIMARY KEY,
name TEXT NOT NULL
)`);
// 群组成员表
db.run(`CREATE TABLE IF NOT EXISTS group_members (
group_id TEXT NOT NULL,
user_id TEXT NOT NULL,
FOREIGN KEY(group_id) REFERENCES groups(id),
FOREIGN KEY(user_id) REFERENCES users(id)
)`);
module.exports = db;