On Wed, 2003-07-02 at 10:50, Jesse Norell wrote: > I think that last idea, the whole message in one record, is > probably not a good idea on postgres because of the way it handles > updates and free space. Every time you update a message (set seen > flag, change status, etc... happens numerous times through the life > of a message), it copies the row and marks the old as being free. > This is both costly for large messages, and would require much higher > fsm settings or more frequent vacuuming to clean up after (though > I think that's supposed to be improved in future pgsql versions). > The current schema handles those updates very well - only a small > entry in the messages table needs to be updated each time.
Absolutely true. I would never want the flags kept with the message, however I don't understand the purpose of splitting up messages in the message_block table. What is the reasoning behind this? It seems like just more work for no gain (that I am aware of). To me the best setup message schemea would be very similar to it is now with a header record that keeps all the flags, and one record in the message_blocks table that contains the whole message.