Request for advice: Table design - Mailing list pgsql-general

From Mattias Kregert
Subject Request for advice: Table design
Date
Msg-id 021301c334ab$633b79c0$09000a0a@kregert.se
Whole thread Raw
Responses Re: Request for advice: Table design  (Thomas Kellerer <spam_eater@gmx.net>)
Re: Request for advice: Table design  (Jason Godden <jasongodden@optushome.com.au>)
Re: Request for advice: Table design  (Mike Mascari <mascarm@mascari.com>)
List pgsql-general
Good morning, list!
I am in the middle of a project and i am just about to decide how to lay out the table(s) for work orders. I had been
planningto use one table, but now i'm not so sure that it would be optimal. 

The order history will grow with something like 150K-200K rows/year and will have to be saved for ten years.
The total number of active (new+validated+planned+ready_for_invoicing) orders would be something like 5K rows.

I am thinking about two solutions:

1. One table, "orders" with a column named "status". New orders, validated orders, planned orders, ready for invoicing,
andold orders, all in one big table. The status column would be updated a number of times for each order. 

2. A number of tables, "new_orders", "validated_orders", "order_history" etc... No status column. Order rows would be
movedfrom one table to another. Perhaps i should have only two tables: "orders" and "order_history"? 


More tables would mean more indexes (but smaller in size), harder to use/maintain a lot of tables and indexes and
triggersand stuff... One table would mean that a lot of inactive orders would slow down access to active rows in the
table...

Any suggestions? Real world examples?

/M


pgsql-general by date:

Previous
From: "Nigel J. Andrews"
Date:
Subject: Re: full featured alter table?
Next
From: "SZŰCS Gábor"
Date:
Subject: adddepend and partial indexes