构建数据库:打造人工智能任务系统 [弗洛西斯 #2]

发布日期:2026-04-16 13:35:45   浏览量 :1
发布日期:2026-04-16 13:35:45  
1

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

1. 概述

在本文中,我记录了一个名为 Floxis(代号)的个人项目的开发过程。

Floxis 是一个利用人工智能来结构化自然语言输入并管理任务的系统(个人操作系统)。计划在未来扩展该系统,以支持工作流等功能。

在上一阶段的开发中,我采用了最小化的结构,以便对系统的行为方式有一个粗略的了解。更多详情,请参阅上一篇文章

这次,我设计了考虑到未来扩展(特别是生产力分析)的数据模型,并重新组织了数据库结构。

设计重点如下:

  • 当前状态与历史记录分离
  • 避免严格的工作流约束
  • 在确保可扩展性的同时保持最小化结构

在本文中,我将解释该数据模型背后的设计决策及其理由。

2. 代码仓库

GitHub 代码仓库

3. 核心结构

该系统由以下五个表组成:

  • tasks:当前状态和基本任务数据
  • statuses:状态定义
  • categories:分类标签
  • projects:任务分组
  • task_status_logs:状态变更历史

4. 概念图

概念图

5. 设计原则

  • 分离当前状态和历史记录,以保持操作轻量级,同时支持分析
  • 仅将状态存储为定义;允许自由转换
  • 将分类和项目视为独立的概念
  • 在项目级别应用分类,同时仍允许独立任务存在
  • status_id 视为单一事实来源;completed_at 为辅助字段
  • 保持结构最小化但具备可扩展性

6. 设计决策

在此设计中,我有意避免了一些常见的方法。

6.1. 为何未实现严格的状态转换

在现实中,任务并不遵循严格的线性流程:

  • 开始 → 暂停 → 恢复 → 完成
  • 完成 → 重新打开

如果我们强制执行转换,将会引入:

  • 顺序约束
  • 无效转换处理
  • 用户界面复杂性

对于这个项目,我决定:

👉 了解当前状态并拥有历史记录日志就足够了。

6.2. 为何未实现工作流约束

工作流往往倾向于:

  • 降低灵活性
  • 严重依赖任务粒度
  • 对于个人使用而言过于复杂

在个人任务管理中,状态的含义往往是流动的。

因此,与其强制执行工作流,不如:

  • 状态仅是定义
  • 转换不受限制

6.3. 如何仅通过日志进行分析

相反

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部