我是否使用 CTE 或事务来组合查询?PostgreSQL

Nor*_*nce 7 sql postgresql transactions common-table-expression

文档说:

事务:事务的本质是将多个步骤捆绑到一个单一的、全有或全无的操作中。步骤之间的中间状态对于其他并发事务不可见,并且如果发生阻止事务完成的某些故障,则所有步骤都不会影响数据库。

数据修改 CTE:这允许您在同一查询中执行多个不同的操作...WITH 中的子语句彼此并发执行并与主查询并发执行。因此,当在WITH中使用数据修改语句时,指定更新实际发生的顺序是不可预测的

我的需求:

  • 全有或全无的操作;
  • 不嵌套查询;
  • 回归;
  • 了解它们之间的区别以及在哪里使用它们。

示例:看下面的设计。当我 CRUD 数据时,我应该在这里使用什么?我的请求应该是什么样的?

数据库设计