Tim*_*mmy 2 mysql database database-design
我将列存储在数据库中,用户可以使用假列添加和删除列.我该如何有效地实现这一点?
最好的方法是垂直实现数据结构,而不是正常的水平.
这可以使用类似的东西来完成
TableAttribute
AttributeID
AttributeType
AttributeValue
Run Code Online (Sandbox Code Playgroud)
垂直的这个应用程序主要用于用户可以创建自己的自定义表单和字段的应用程序(如果我正确地回忆起devexpress表单布局允许您创建自定义布局).主要用于CRM应用程序,这很容易修改生产,并且易于维护,但一旦数据集变得非常大,就会大大降低SQL性能.
编辑:
这取决于你想要走多远.您可以将其设置为每个表单/表,添加描述控件的实际控件(查找,组合,日期时间等等)位置的属性,允许值(min/max/allow null).
这可能会成为一项非常繁琐的任务,但在很大程度上取决于您的实际需求.