引导一个应用程序,是一个好主意吗?

时间:2014-02-17 22:08:59

标签: node.js angularjs postgresql

我正在建造一个用于建筑构件组件的内部webb应用程序。我有一些表与项目绑定到其他表。当用户创建一个新项目时,我想" bootstrap"具有默认分类模式的项目,然后用户可以为其项目进行修改。所以我需要从默认模式中复制一些并将其绑定到用户项目。

我在后端运行NodeJS,在前端运行AngularJS,在db运行postgres。这种逻辑的最佳方式在哪里?要么我在d​​b上使用触发器。当对项目表发布新帖子时,将激活触发器。或者,我将在Node中使用复杂查询来执行此操作。或者还有其他方式吗?有最好的做法吗?它可能更容易"做一个触发器。但我担心应用程序的维护和测试。

1 个答案:

答案 0 :(得分:0)

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

  1. 撤消项目表的插入权限。创建一个函数new_project(),它具有项目所需的所有初始状态的参数。在该函数内部,您可以创建模式,执行一些复制,设置权限并使用参数值填充表。
  2. 撤消项目表的插入权限。创建一个视图,其中包含所有相关表中的所有必需列,以生成有效的初始项目并在视图上创建INSTEAD OF INSERT触发器。在触发器功能中,您可以执行上述所有必需的步骤。
  3. PostgreSQL上的调试代码不是很先进,但无论你是否将代码放在PostgreSQL或应用程序端,你都会遇到同样的问题。 PostgreSQL的优点是错误 - 如果有的话 - 永远不会远离代码运行的地方。