协作工具
Go to file
2025-01-15 00:28:52 +08:00
.gitignore 清理配置 2025-01-15 00:28:52 +08:00
index.html 移除元素 2024-12-09 11:53:48 +08:00
LICENSE Initial commit 2024-11-17 22:55:00 +08:00
main.js 防止重复点击 2024-12-09 16:54:26 +08:00
package.json 初始表结构 2025-01-14 20:53:10 +08:00
reactive.js 移除元素 2024-12-09 11:53:48 +08:00
README.md 初始表结构 2025-01-14 20:53:10 +08:00
vite.config.js 移除废弃 2025-01-15 00:27:18 +08:00

cooperation

协作工具

# 安装依赖(使用镜像站)
npm i --registry=https://registry.npmmirror.com

  1. 日志格式数据, 时间戳,hash,作者,类型CURD,语句DATA
  2. MD视图数据
    1. 表示颜色
    2. 表示用户
    3. 表示转向
  • 推转(将任务推到下一个工序)
  • 推转等待(下一个工序处理后仍要回执的, 等待过长会造成效率低下)
  • 创建项目
  • 发布任务
-- 用户表
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    avatar TEXT,  -- 存储头像的 URL 或路径
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 自动设置创建时间
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 自动设置更新时间
    CHECK (created_at <= updated_at)  -- 确保更新时间不早于创建时间
);

-- 项目表
CREATE TABLE projects (
    id INTEGER PRIMARY KEY,
    user_id INTEGER NOT NULL,
    name TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 自动设置创建时间
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 自动设置更新时间
    FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
    CHECK (created_at <= updated_at)  -- 确保更新时间不早于创建时间
);

-- 任务表
CREATE TABLE tasks (
    id INTEGER PRIMARY KEY,
    project_id INTEGER NOT NULL,
    name TEXT NOT NULL,
    status TEXT NOT NULL DEFAULT '未开始',            -- 任务状态默认未开始
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 自动设置创建时间
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 自动设置更新时间
    FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE,
    CHECK (created_at <= updated_at),  -- 确保更新时间不早于创建时间
    CHECK (status IN ('未开始', '进行中', '已完成'))  -- 限制任务状态为预定义值
);


-- 问题发现 > 分析原因 > 处理方案 > 处理结果
-- 功能新增 > 分析需求 > 规划方案 > 实施结果


-- 触发器(自动设置更新时间)
CREATE TRIGGER update_users AFTER UPDATE ON users FOR EACH ROW BEGIN
    UPDATE users SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
END;

CREATE TRIGGER update_projects AFTER UPDATE ON projects FOR EACH ROW BEGIN
    UPDATE projects SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
END;

CREATE TRIGGER update_tasks AFTER UPDATE ON tasks FOR EACH ROW BEGIN
    UPDATE tasks SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
END;

默认情况下SQLite 的外键约束是关闭的,需要在每次连接数据库时显式启用外键支持。否则,外键约束将不会生效。

PRAGMA foreign_keys = ON;