What's the good way to cache reference data?

I'm looking at an application that has 30+ lookup tables. By that I mean your typical (id, description, created_on) affairs that contain locations, zip codes, contract types and what not. Things that rarely change, and are maintained by administrators.

It's well known that when you have many lookup tables in the schema, eager loading is not good enough anymore, and you need to cache them in memory as ready-made objects, to avoid abusing the database.

Looking for an available Rails solution I came across http://dev.robotcoop.com/Libraries/cached_model/classes/CachedModel.html

Is it the good way to do this? Are there other choices worth looking at? Should we roll our own?

NB: Yes, I know about ActiveRecord:Base.cache(), and it doesn't solve this problem, not in our case.

Alexey Verkhovsky wrote:

I'm looking at an application that has 30+ lookup tables. By that I mean your typical (id, description, created_on) affairs that contain locations, zip codes, contract types and what not. Things that rarely change, and are maintained by administrators.

It's well known that when you have many lookup tables in the schema, eager loading is not good enough anymore, and you need to cache them in memory as ready-made objects, to avoid abusing the database.

Looking for an available Rails solution I came across http://dev.robotcoop.com/Libraries/cached_model/classes/CachedModel.html

Is it the good way to do this? Are there other choices worth looking at? Should we roll our own?

For smallish tables that you want permanently and fully cached in memory I'd recommend: http://svn.protocool.com/public/plugins/enumerations_mixin/