当前位置:  开发笔记 > 前端 > 正文

什么是关系数据库中客户端可创建和可修改的Web表单的最佳实现?

如何解决《什么是关系数据库中客户端可创建和可修改的Web表单的最佳实现?》经验,为你挑选了0个好方法。

在我参与的几个Web应用程序项目中,客户端要求能够创建自己的表单.问题出现在如何存储其表单定义,以及如何将用户输入的值存储到这些自定义表单中.

我已经看到它有两种方式:

    假设客户端仅定义了多少个字段,以及与这些字段关联的标签; 我们可以找到一个涉及四个表的解决方案. FormDefinition,FormFieldDefinition,FormInstances,FormFieldValues.客户端对FormDefinition和进行更改FormFieldDefinition,并且Web应用程序使用该信息呈现HTML Web表单,网站访问者(最终用户)将在该表单上提交表单,其中FormInstances创建新行并将值保存在FormFieldValues表.

    行中FormDefinition定义了表单,即form definition ID = 2, form title = 'Car Registration Form'.行中FormFieldDefinition定义表单的字段FormDefinition,即field definition ID = 7, field label = 'Car Model', field type = 'varchar(50)'.行FormInstance是用户填写的每个表单的实例,即definition id = 2, date_entered = '2008-09-24'.并且行FormFieldValues是用户的条目,即field definition = 7, value = 'Tiburon'.

    不幸的是,这意味着value列FormFieldValues必须是客户端可能在Web表单中指定的最大可能大小的char类型...并且当表单定义更改时,管理旧数据变得不确定.但用户条目是可查询的(我写了一个快速查询,列出了给定表单ID的用户条目,这类似于另一个数据透视问题).

    使用四个表的另一种方法是将表单定义和用户表单条目序列化为XML(或YAML或类似的东西)并将其存储为文本.好处是表单在数据库中是人类可读的.缺点是解析XML会有更多的应用程序开销,从SQL的角度来看,数据库的可查询性要低得多.

我真正的问题是,这个数据库模型叫什么?(所以我可以谷歌这个问题.)但我会回答:哪个是更好的实现,还是有更好的(或同样好的)实现?

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有