Re: Is it better keep most logic in the database or the Node.js application?

From: Bzzzz <lazyvirus(at)gmx(dot)com>
To: pgsql-novice(at)lists(dot)postgresql(dot)org
Cc: Simon Connah <simon(dot)n(dot)connah(at)protonmail(dot)com>
Subject: Re: Is it better keep most logic in the database or the Node.js application?
Date: 2021-03-19 14:45:49
Message-ID: 20210319154549.173d0923@msi.defcon1.lan
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Fri, 19 Mar 2021 08:37:48 +0000
Simon Connah <simon(dot)n(dot)connah(at)protonmail(dot)com> wrote:

Hi,

> I've been wondering this for some time but is it better to keep the
> vast majority of the logic in the database using functions, stored
> procedures, triggers and everything else or should I keep the SQL in
> the Node.js web application and use that to directly query the
> database object? I would have thought using database functions would
> be faster as the database will know what the query is ahead of time
> and can perform some optimisations on it but this is just a guess on
> my part.
>
> What should I do? Keep everything in the Node.js application or do as
> much as possible in PostgreSQL?

TL;DR : it depends on the kind of your app.

Read these links:
https://www.postgresql.org/message-id/CAHyXU0z4BKZm324JGEj50LL6_YOeyk514H6dYRr3TbYiA8DCNQ%40mail.gmail.com

https://vertabelo.com/blog/business-logic-in-the-database-yes-or-no-it-depends/
(IMHO, one of the best article there is on this subject)

Rule of thumb: if it is a very simple app, use the code, otherwise, use
the <del>force, Luke</del> DB own language ; in either cases, think
twice about your relational model to avoid touching it later.

Jean-Yves

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Bruce Momjian 2021-03-19 17:16:04 Re: Is it better keep most logic in the database or the Node.js application?
Previous Message Laszlo Forro 2021-03-19 14:41:48 Re: Is it better keep most logic in the database or the Node.js application?