- use of general-* (we could rate our favorite object_types!
- integer primary key
- change acs_object_types table (new key, unique constraint on object_type)
- add new and delete functions to acs_object_type package
- make sure all foreign keys referencing acs_object_types use the right column (easier than making them all use the integer key)
- arrange the appropriate order for data model installation (table acs_object_types, table acs_objects, package acs_object, package acs_object_type)
- write upgrade scripts that drop constraints, alter tables, insert objects for existing object types, and add new constraints to replace the old ones (tricky, but not impossible)
It's not clear to me that any of these are huge wins, but if we can get them real cheap, I guess it can't hurt. I don't see any big pitfalls to doing it. It'll take a little consideration to do it right, but the amount of work is pretty small.
However, to answer Dean's original question, I'd still go with a mapping table. It's hard to imagine using acs_rels would be of any great benefit.