Years ago I implemented something very similar. Now I see my approach fell short. I will need to have 4 or 5 mirror tables to split the functionality. I have in total 600+ fields, but I think that I can reduce the number by using layout elements. Not too much, may be 10% or 20% at most. The rest will have to be divided in at least 4 or 5 tables.