当前位置: 首页 > news >正文

番茄项目3:完成了项目的数据库设计

今天抽了会时间设计了下表结构,并选定的使用的数据库,经过调查,我决定还是把数据存在数据库中,因为写SQL是我擅长的。
最终我选择使用python自带的sqlite来实现这个工具,具体建表语句如下:

基于AI生成,自己改了一些地方

-- 启用外键约束(SQLite 默认关闭)
PRAGMA foreign_keys = ON;-- 任务表(tasks)
CREATE TABLE IF NOT EXISTS tasks (task_id INTEGER PRIMARY KEY AUTOINCREMENT,  -- 自增主键name TEXT NOT NULL,                         -- 任务名称status TEXT NOT NULL CHECK (status IN ('进行中', '已完成', '已删除')), -- 状态约束estimated_pomos INTEGER DEFAULT 0,          -- 预计番茄数created_time TEXT DEFAULT (strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime')), -- 创建时间completed_at TEXT                           -- 完成时间(允许为空)
);-- 番茄表(pomodoros)
CREATE TABLE IF NOT EXISTS pomodoros (pomodoro_id INTEGER PRIMARY KEY AUTOINCREMENT, -- 自增主键task_id INTEGER NOT NULL,                     -- 关联任务start_time TEXT NOT NULL,                     -- 番茄开始时间(ISO8601格式)end_time TEXT,                                -- 番茄结束时间(允许为空)status TEXT NOT NULL  -- 状态约束FOREIGN KEY (task_id) REFERENCES tasks(task_id) ON DELETE CASCADE -- 级联删除
);-- 打断表(interruptions)
CREATE TABLE IF NOT EXISTS interruptions (interruption_id INTEGER PRIMARY KEY AUTOINCREMENT, pomodoro_id INTEGER NOT NULL UNIQUE,          -- 一对一关联番茄reason TEXT , -- 原因分类interruption_time TEXT NOT NULL,                      -- 打断发生时间FOREIGN KEY (pomodoro_id) REFERENCES pomodoros(pomodoro_id) ON DELETE CASCADE
);-- 干扰表(distractions)
CREATE TABLE IF NOT EXISTS distractions (distraction_id INTEGER PRIMARY KEY AUTOINCREMENT,pomodoro_id INTEGER NOT NULL,                 -- 关联番茄description TEXT NOT NULL,                    -- 干扰描述distraction_time TEXT DEFAULT (strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime')), -- 发生时间FOREIGN KEY (pomodoro_id) REFERENCES pomodoros(pomodoro_id) ON DELETE CASCADE
);
http://www.dtcms.com/a/309033.html

相关文章:

  • npm报错:npm install 出现“npm WARN old lockfile”
  • ZED 2/2i 相机安装与调试完整指南 | Ubuntu 20.04 + CUDA 11.8
  • k8s云原生rook-ceph pvc快照与恢复(下)
  • 前端SWR策略:优化数据请求
  • STM32学习记录--Day5
  • AG-UI 协议全面解析--下一代 AI Agent 交互框架医疗应用分析(下)
  • 接口幂等性
  • 【Flutter】双路视频播放方案
  • 《R for Data Science (2e)》免费中文翻译 (第3章) --- Data transformation(1)
  • Jupyter Notebook 使用指南
  • Idea集成Jenkins Control插件,在IDEA中触发Jenkins中项目的构建
  • 【数据可视化-78】2025年上半年广东省各市GDP排名深度解析与可视化:Python + Pyecharts 深度洞察(含完整数据、代码)
  • 【Linux学习|黑马笔记|Day1】Linux初识、安装VMware Workstation、安装CentOS7、远程连接、虚拟机快照
  • Cradle:颠覆AI Agent 操作本地软件,AI驱动的通用计算机控制框架,如何让基础模型像人一样操作你的电脑?
  • 九、Maven入门学习记录
  • 嵌入式筑基之STM32启动流程
  • AG-UI 协议全面解析--下一代 AI Agent 交互框架医疗应用分析(上)
  • SQL注入SQLi-LABS 靶场less25a-28a详细通关攻略
  • LoRA低秩适配的原理
  • anaconda searchanaconda show | conda 检索包资源安装指定版本包指定源安装命令package
  • Mysql-视图,函数,存储过程,触发器
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(12):文法+单词
  • conda issue
  • C++-2025.7.31
  • LaTeX 表格制作全面指南
  • js防抖、节流和扁平化实现
  • 链特异性文库是什么?为什么它在转录组测序中越来越重要?
  • 【Kubernetes 指南】基础入门——Kubernetes 201(三)
  • 第13届蓝桥杯C++青少组中/高级组选拔赛2022年3月13日真题
  • pdw估计edw怎么估计