Hi Chris,
>>Most of my local views were designed to let me work on a full list or a single value with WHERE clauses like (EMPTY(?vp_keyid) OR table.keyid=?vp_keyid), sometimes on several tables/keys. It works well, but am I shooting efficiency in the foot?
Most likely, yes. EMPTY() isn't optimized unless you actually have an index on EMPTY() which would be a waste of space and slow down the update process. Instead compare with the empty value directly:
WHERE vp_keyid == 0
WHERE vp_keyid == SPACE(25)
As far as the full list goes, that depends on the number of records. It would be fine for a list of states in the US, but not for a list of states for all countries of the world. The goal should always be to minimize the number of records the user to the amount that the user really needs to work on at the same time.
--
Christof