http://blog.documentcloud.org/blog/2011/05/arbitrary-metadat...
... when I search for "company:XTO" (or "company:*" for that matter), it can be serialized into an hstore query like so:
https://github.com/documentcloud/documentcloud/blob/master/l...
... and then be used to build apps with hstore queries on top of the API, like this:
http://www.nytimes.com/interactive/2011/12/02/us/oil-and-gas...
... all without ever having to change the database schema, or indexes.
http://travisjeffery.com/b/2012/02/using-postgress-hstore-wi...
I go over how to use the keys as fields, and some other common problems.
Or they could have used a small Product table with common fields and made fanout tables for Books and Laptops. For some reason it appears impossible for some to create new tables, or have joins and foreign keys.
There was a good talk about using Postgres as a key-value store at PGcon 2010, see http://www.pgcon.org/2010/schedule/events/219.en.html and http://www.scribd.com/gavinmroy/d/31669670-PostgreSQL-and-No... (especially the classic photo of DBAs running with scissors)