David Tangye wrote:
See responses below.On 6/21/07, *Stroller* <..hidden.. <mailto:..hidden..>> wrote:
Its not crazy at all. Its correct analysis. And its not necessarily a case of duplicate data. Its a snapshot of an event whose information is often represented by the same data values each time. That is not duplicate data.
No it is entirely incorrect. Proper normalization with proper keys and proper revisioning will allow distinct and exact representations of the invoice data (if not the template which is actually irrelevant) regardless.
It is a simple matter (as an example) of not allowing locations/addresses to be edited. When you insert it, it is there, forever. You can mark it as active/inactive, and track the timestamp which the change was made, but you never delete. Thus allowing the invoice to keep correct data forever.
When you normalise you make things more complicated and introduce the risk of a record becomingchanged (linked to an different entity) after its been posted.Yes.
No. That could only happen if you allowed editing of invoices which once posted we won't.
Let's consider a "normalised" paper trail. We print out an invoice to send to the customer - it has their address on it, the details of items & services sold and a total amount owing. The logical thing to so is not keep a copy of the whole invoice but to simply record customer number, item numbers & amount in a ledger. But the tax man does not allow us to do this - he requires us to keep a whole copy of the invoice, wasting more paper and consuming much more space in our filing cabinets. Whether we produce it with carbon paper, a photocopier or by printing it out twice on our laser printer, our copy of the invoice has to be exactly the same as the one we sent out (not just the relational data required to produce an exact copy). Exactly.
Actually no. The taxman require that you be able to reproduce the invoices not that they be paper (I know, I have been audited several times, without any incident).
Joshua D. Drake -- === The PostgreSQL Company: Command Prompt, Inc. === Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240 Providing the most comprehensive PostgreSQL solutions since 1997 http://www.commandprompt.com/ Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate PostgreSQL Replication: http://www.commandprompt.com/products/