Theoretically / blue sky, could there be a table or column type that
transparently handles "shared strings" like this, reducing size on disk
at the cost of lookup overhead for all queries?
(I guess maybe it's like TOAST, but content-hashed and de-duped and not
only for large objects?)
Row-independence is baked into PostgreSQL pretty deeply...
I think an enum type is about as close are you are likely to get if you don't wish to setup your own foreign-key relationships with surrogate keys.
David J.