我想设计一个应用程序,最终为可配置的数据驱动形式提供支持。
每个用户都应该能够自定义哪些字段以自己的形式显示,并配置新的表单类型以收集不同的数据集。
一位用户可能需要:
另一位用户可能想要:
我听说**实体属性值(EAV)**设计模式可能适用于此,但在我的情况下,基本上所有字段最初都是已知的。可以在以后添加新字段类型,但它将是受控制的过程。
与使用具有~1000列的SQL表相比,使用EAV设计模式是否有优势,每个用户可根据需要切换开/关列?与单个表相比,EAV是否具有查询缺点?
我应该采取另一种方法吗?
答案 0 :(得分:2)
您可能会喜欢我的演示文稿:Extensible Data Modeling with MySQL。它是在考虑MySQL的情况下完成的,但许多概念适用于任何SQL数据库。
或者我过去在Stack Overflow上的回答:How to design a product table for many kinds of product where each product has many parameters?
我不是这种任务的EAV解决方案的粉丝。它引入了比解决的问题更多的问题。请阅读上面的链接以获取详细信息,或者我的博文:EAV FAIL。