pg.ddx.io pgsql-sql@postgresql.org mailing list archivehelp / color / mirror / Atom feed
Design Q.:logic in app or db? 3+ messages / 3 participants [nested] [flat]
* Design Q.:logic in app or db? @ 2003-02-26 15:32 george young <gry@ll.mit.edu> 2003-02-26 18:25 ` Re: Design Q.:logic in app or db? Josh Berkus <josh@agliodbs.com> 2003-02-26 19:58 ` Re: Design Q.:logic in app or db? Achilleus Mantzios <achill@matrix.gatewaynet.com> 0 siblings, 2 replies; 3+ messages in thread From: george young @ 2003-02-26 15:32 UTC (permalink / raw) To: pgsql-sql I have general design question about Postgres usage: How does one decide how much, and what parts of logic should go in DB rules, triggers, functions, constraints etc, versus what should go in the application? I see postings here from people who obviously have a lot of domain logic in the DB side. I currently have almost none. I plan to set up a bunch of RI constraints to keep things clean and consistant, but what about logic that implements frequent domain operations? Brief sketch of my project: 2 developers, 4k lines of python(gtk, pygres), 2 main GUI user apps and a few read-only scripts for web display, 50 concurrent users(all local), DB performance important but not currently a problem. The main thing not done yet is to facilitate ad-hoc queries (via odbc excel etc.) from db-naive users: maybe restructuring the db to make it simpler, maybe views and functions... The data is somewhat complex in structure. -- George -- I cannot think why the whole bed of the ocean is not one solid mass of oysters, so prolific they seem. Ah, I am wandering! Strange how the brain controls the brain! -- Sherlock Holmes in "The Dying Detective" ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Design Q.:logic in app or db? 2003-02-26 15:32 Design Q.:logic in app or db? george young <gry@ll.mit.edu> @ 2003-02-26 18:25 ` Josh Berkus <josh@agliodbs.com> 1 sibling, 0 replies; 3+ messages in thread From: Josh Berkus @ 2003-02-26 18:25 UTC (permalink / raw) To: gry@ll.mit.edu; pgsql-sql George, > I have general design question about Postgres usage: How does one decide > how much, and what parts of logic should go in DB rules, triggers, > functions, constraints etc, versus what should go in the application? Ideally, this should be done strictly on the basis of carefully planned design architecture, where each business rule is implemented at the application level where it is most effective, such as referential data integrity in the database and security in the middleware. Realistically, business logic tends to be implemented in the layer where you have the most programming expertise. The people on this list are often expert DBAs, so they implement as much business logic as possible in the database in the form of views, triggers, and rules. However, I"ve seen plenty of shops with multiple crackerjack Java programmers and a weak DBA implementing all of their business logic in the middleware. > The main thing not done yet is to facilitate ad-hoc queries > (via odbc excel etc.) from db-naive users: maybe restructuring the > db to make it simpler, maybe views and functions... The data is > somewhat complex in structure. This desired feature would argue strongly in favor of putting as much business logic as possibly in your database in the form of views and rules. If users can bypass the interface and middleware, you cannot rely on it to enforce data integrity and access control. -- Josh Berkus josh@agliodbs.com Aglio Database Solutions San Francisco ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Design Q.:logic in app or db? 2003-02-26 15:32 Design Q.:logic in app or db? george young <gry@ll.mit.edu> @ 2003-02-26 19:58 ` Achilleus Mantzios <achill@matrix.gatewaynet.com> 1 sibling, 0 replies; 3+ messages in thread From: Achilleus Mantzios @ 2003-02-26 19:58 UTC (permalink / raw) To: george young <gry@ll.mit.edu>; +Cc: pgsql-sql On Wed, 26 Feb 2003, george young wrote: > I have general design question about Postgres usage: How does one decide > how much, and what parts of logic should go in DB rules, triggers, > functions, constraints etc, versus what should go in the application? > > I see postings here from people who obviously have a lot of domain > logic in the DB side. I currently have almost none. I plan to set up > a bunch of RI constraints to keep things clean and consistant, but what > about logic that implements frequent domain operations? > > Brief sketch of my project: 2 developers, 4k lines of python(gtk, pygres), > 2 main GUI user apps and a few read-only scripts for web display, > 50 concurrent users(all local), DB performance important but not currently > a problem. > > The main thing not done yet is to facilitate ad-hoc queries > (via odbc excel etc.) from db-naive users: maybe restructuring the > db to make it simpler, maybe views and functions... The data is > somewhat complex in structure. If your column names make sense you could expose table's structure using metadata of your favorite driver or direct sql calls to system tables. Also you could install a search engine on your site, and have all these "adhoc" queries predone and indexed. > > -- George > -- > I cannot think why the whole bed of the ocean is > not one solid mass of oysters, so prolific they seem. Ah, > I am wandering! Strange how the brain controls the brain! > -- Sherlock Holmes in "The Dying Detective" > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > ================================================================== Achilleus Mantzios S/W Engineer IT dept Dynacom Tankers Mngmt Nikis 4, Glyfada Athens 16610 Greece tel: +30-10-8981112 fax: +30-10-8981877 email: achill@matrix.gatewaynet.com mantzios@softlab.ece.ntua.gr ^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2003-02-26 19:58 UTC | newest] Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2003-02-26 15:32 Design Q.:logic in app or db? george young <gry@ll.mit.edu> 2003-02-26 18:25 ` Josh Berkus <josh@agliodbs.com> 2003-02-26 19:58 ` Achilleus Mantzios <achill@matrix.gatewaynet.com>
This inbox is served by DDX for PostgreSQL; see mirroring instructions for how to clone and mirror all data and code used for this inbox