The question is how to design a system that has configurable forms? Think of a bug tracking app that can add fields, change labels, etc. I can think of two approaches. 1. Use a field table that maps field instances to a form which is mapped to a project. Several difficulties. Presentation. How do you make this look good? Queries. How do you make decent queries? Is the field a union type? Or is it only a string? 2. Generate custome code for each project, ala MDA. In this approach you would generate new schema definitions and the code to use them, like they were done by hand. This level is dynamism is hard. It also makes it difficult to do cross configuration reports. Let's say project A has a bug configuration, project B has one, how to do reports combining A and B?