Bootstraping一个应用程序,触发一个好主意?

我是build筑物内部的webb应用程序的build筑部件的组成部分。 我有一些与其他桌子绑在一起的桌子。 当用户创build一个新的项目时,我想用一个默认的分类模式“引导”项目,然后用户可以修改他/她的项目。 所以我需要从一个默认模式做一些副本,并将其绑定到用户项目。

我在后端运行NodeJS,在前端使用AngularJS,在数据库中使用postgres。 放置这个逻辑的最好方法在哪里? 要么使用数据库的触发器。 在项目表中创build一个新post时激活触发器。 或者,我会用Node中的复杂查询来完成它。 或者有其他的方法吗? 有最佳做法吗? 做一个触发器可能是“更容易”的。 但是我担心应用程序的维护和testing。

由于您拥有的问题与数据库的状态有关,您应该在数据库中解决它。 基本上有两种解决方法:

  1. 撤销项目表上的插入特权。 创build一个函数new_project(),该函数具有项目所需的所有初始状态的参数。 在这个函数内部,你可以创build模式,执行一些复制,设置权限并用参数值填充表格。
  2. 撤销项目表上的插入特权。 创build一个包含所有相关表中所有必需列的视图来创build一个有效的初始项目,并在视图上创build一个INSTEAD OF INSERT触发器。 在触发器function中,您可以执行上述所有必需的步骤。

在PostgreSQL上debugging代码不是很先进,但是不pipe你把代码放在PostgreSQL还是应用程序端,你都会遇到同样的问题。 PostgreSQL的优势在于,如果有的话,这个错误就不会远离代码运行的地方。