mysql - 在数据库中做灵活列的正确方法是什么?

标签 mysql database database-design

我将列存储在数据库中,用户可以使用假列添加和删除列。我如何有效地实现它?

最佳答案

最好的方法是垂直实现数据结构,而不是正常的水平。

这可以用类似的东西来完成

TableAttribute
    AttributeID
    AttributeType
    AttributeValue

这个垂直应用程序主要用于用户可以创建自己的自定义表单和字段的应用程序(如果我没记错的话,devexpress 表单布局允许您创建自定义布局)。 主要用于 CRM 应用程序,这很容易在生产中修改,并且易于维护,但一旦数据集变得非常大,就会大大降低 SQL 性能。

编辑:

这将取决于您希望走多远。您可以将其设置为每个表单/表,添加描述实际控件的属性(查找、组合、日期时间等...)控件的位置、允许的值(最小/最大/允许空值)。

这可能会成为一项非常繁琐的任务,但在很大程度上取决于您的实际需求。

关于mysql - 在数据库中做灵活列的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595223/

相关文章:

php - 从表的 2 行中获取值并将它们合并为一个字符串

php - 与平均 PHP 不同且有序的结果

mysql - Sqlalchemy & Pylons : Adding new tables to a previously defined database?

mysql - Cakephp 虚拟字段如果此列为空则使用此列

json - 如何为 Firestore 创建大量示例数据?

postgresql - Postgres - 记录多达 8000 个整数的最佳设计?

postgresql - 如何将具有 n 列的表映射到数据库?

mysql - EXPLAIN 语句说 'Using where; Using index' 如果在查询中设置了 USE INDEX() 否则就说 'Using where'

mysql - 在 phpMyAdmin 中上传大型数据库

php - PHP/MySQL与数据库的连接