[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Some initial schema thoughts
- Subject: Re: Some initial schema thoughts
- From: David Tangye <..hidden..>
- Date: Sun, 10 Sep 2006 13:49:43 +1000
On Sat, 2006-09-09 at 10:24 -0700, Joshua D. Drake wrote:
> Hello,
>
> This just covers some general notes about what I see wrong with the
> schema. My suggestion only cover nominal changes that in theory would
> not effect code:
>
>
> Ledger-SMB notes:
>
Agreed with all points except...
> * customers.startdate is this the date the customer started with us?
> Should this default to creation date?
Probably not. It depends on your definition of 'creation date' and
'start date'. See my last post, and the section about 'Top down'
regarding this.
Specifically, if 'creation date' means 'the date the users entered the
data', and 'start date' is 'the first date the customer can order, be
invoiced, be sent a quote, pay etc (ie can participate in a business or
financial transaction' (define these too - OK)) then the 2 dates are
often different. 'Start date' often preceeds 'current date', ie when
data is recorded day(s) after the event.
> * orderitems is using OIDs, good god why?
Old historical reasons, lost in the passage of time? There will be other
examples of this?
After or during the merging of functionality from sources/projects, I
recommend making a big effort at (in this order) ...
1. Scope the limits of intended functionality of the application (Define
the summary of this is right on the projects home/summary page at
Sourgeforge, and in the introduction in the Manual etc etc)
2. Model and build/rebuild at least a data schema to reflect that
3. Create whatever data migration scripts are needed and
4. Release the new version with its new schema and migration scripts to
be applied when users log in as happens at present,
**before**
5. adding **any new** functionality at all.
In other words, get the basics right first before getting carried away
with the killer app :-).
6. Get carried away with the killer app. :-)