[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Checklist for 1.3
- Subject: Re: Checklist for 1.3
- From: Josh Berkus <..hidden..>
- Date: Mon, 5 Mar 2007 09:53:25 -0800
JD, Chris,
> The long and short of it is this. Core believes that data integrity
> belongs with your data,
Or, in less abstract terms, we expect that people will want to create plug-ins
and interoperability modules for LedgerSMB with other software. The best way
to make sure that extensions of LedgerSMB cannot mess up the base financial
data is to create a bulletproof data API for them to plug into instead of the
base tables.
While such an API could be created in middleware, creating a middleware API
which would be programming-language agnostic and sufficiently robust and
secure would be significantly greater effort (as in 3x to 10x) than doing it
inside the database. Especially given our pool of expertise, which includes
several PostgreSQL experts.
> which means we will be
> implementing data type constraints, custom domains, RI, triggers, rules
> and any other method required (including functional check constraints)
> to insure that the data of ledgersmb is impeccable.
I've done this with other financial databases. Generally I end up
implementing a full abstraction layer in the database, consisting of numerous
views and functions replacing direct table access. I would tend to lean
against triggers/rules on base tables, except for data auditing, as they are
difficult to manage from a development perspective and can easily have
unintended effects. Views and data-push functions, or pseudo-tables, allow
front-loading of business rules in a way which can be easily isolated to
specific data regions.
--
Josh Berkus
PostgreSQL @ Sun
San Francisco