2024年12月

如果你正在寻找类似 n8n 的可以本地搭建的免费开源工作流工具,以下是一些值得考虑的选项:

  1. Zapier (Make)

    • 虽然 Zapier 本身不是开源的,但它的社区版 Make(以前称为 Integromat)提供了一定程度上的本地化支持,并且有开源的部分。不过需要注意的是,Make 的主要版本还是一个云端服务。
  2. n8n

    • n8n 是一个非常强大的开源工作流自动化工具,支持自托管,可以本地部署。它拥有丰富的节点库,允许你连接和自动化各种服务和应用程序。你可以通过图形界面拖拽来创建复杂的工作流,非常适合需要定制化解决方案的用户。
  3. Dify

    • Dify 是一个开源的 LLM 应用开发平台,除了构建智能体和工作流编排外,还提供了 RAG 检索、模型管理等功能。它可以轻松地在本地环境中设置和运行,适合希望在本地环境中使用 AI 工作流的开发者。
  4. AntFlow

    • AntFlow 是一款开源免费且自主可控的工作流引擎,模仿了钉钉的流程审批系统,实现了可视化的流程拖拽配置。它基于 Vue3 和 Spring Boot 技术栈,适合企业级应用,特别是对于那些寻求快速集成审批流程解决方案的企业来说是一个不错的选择。
  5. Apache Airflow

    • Apache Airflow 是一个广泛使用的开源平台,用来编写、调度和监控工作流。Airflow 使用 Python 编写 DAG(Directed Acyclic Graphs),非常适合数据工程任务或任何需要定时执行的任务。
  6. Prefect

    • Prefect 是一个现代的数据工作流编排平台,支持云和本地部署。它专注于简化数据管道的创建和维护,同时保持灵活性以适应不同的业务需求。
  7. Keptn

    • Keptn 是一个用于持续交付和操作云原生应用程序的开源平台。它不仅涵盖了 CI/CD 流水线,还包括服务质量管理和事件处理等特性。
  8. Rundeck

    • Rundeck 是一个开源的作业调度和工作流管理系统,适用于运维团队。它允许管理员定义和执行复杂的操作流程,并且可以与多种技术栈集成。
  9. Camunda

    • Camunda 提供了一个开源的 BPMN 2.0 兼容的工作流和决策管理平台。它支持本地部署,具有高扩展性和灵活性,适合构建复杂的业务流程。
  10. Snaker

    • Snaker 是一个轻量级的 Java 工作流引擎,设计简单,易于集成到现有系统中。它也支持本地部署,是小型项目或者对性能要求较高的场景下的好选择。

这些工具各有特点,根据你的具体需求(如编程语言偏好、特定功能需求、易用性等),可以选择最适合自己的工具进行本地搭建和使用。例如,如果你需要一个可视化编辑器来创建工作流,那么 n8n 或者 AntFlow 可能是最合适的选择;而如果你更关注数据管道的编排,那么 Prefect 或者 Apache Airflow 可能更适合。

假设我们有一个商品是T恤衫,它有两种规格类型:颜色和尺寸。每种类型的规格都有多个可能的值,并且每个组合都有不同的价格和库存量。

示例数据
商品表 (Product)
product_id name description category_id brand_id
1 T恤衫 舒适透气的纯棉T恤 3 2
规格类型表 (Specification_Type)
spec_type_id name unit
1 颜色 -
2 尺寸 -
规格值表 (Specification_Value)
spec_value_id spec_type_id value
1 1 红色
2 1 蓝色
3 2 S
4 2 M
5 2 L
商品规格表 (Product_Specification)
这里记录了哪些规格类型适用于该商品。

id product_id spec_value_id
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
SKU表 (Stock_Keeping_Unit)
每个SKU代表一种特定的颜色和尺寸组合。

sku_id product_id price stock_quantity barcode
1 1 99.00 100 12345678
2 1 99.00 150 12345679
3 1 109.00 200 12345680
SKU与规格关系表 (SKU_Specification_Relation)
这表明每个SKU对应的具体规格。

id sku_id spec_value_id
1 1 1
2 1 3
3 2 2
4 2 4
5 3 2
6 3 5
在这个例子中,我们可以看到:

sku_id为1的商品是红色、S尺寸的T恤,售价99元,库存100件。
sku_id为2的商品是蓝色、M尺寸的T恤,售价也是99元,但库存150件。
sku_id为3的商品是蓝色、L尺寸的T恤,售价稍高一些,为109元,库存200件。
这样的设计允许系统灵活处理各种规格组合,并且可以很容易地扩展到支持更多种类的规格(例如材质、样式等),同时也方便管理和查询不同规格组合的价格和库存信息。