加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 用于存储表单字段和字段值的数据库架构建议

发布时间:2020-12-16 07:10:07 所属栏目:asp.Net 来源:网络整理
导读:我的任务是创建一个应用程序,允许用户将数据输入到将保存的Web表单中,然后最终用于填充pdf表单字段. 我很难想出一种将字段值存储在数据库中的好方法,因为表单将是动态的(基于pdf字段). 在应用程序本身中,我将在哈希表(fieldname,fieldvalue)中传递数据,但我
我的任务是创建一个应用程序,允许用户将数据输入到将保存的Web表单中,然后最终用于填充pdf表单字段.

我很难想出一种将字段值存储在数据库中的好方法,因为表单将是动态的(基于pdf字段).

在应用程序本身中,我将在哈希表(fieldname,fieldvalue)中传递数据,但我不知道将哈希值转换为db值的最佳方法.

我正在使用MS SQL server 2000和asp.net webforms.有没有人在做类似的事情?

解决方法

您是否考虑过在这里使用文档数据库?这只是他们解决的问题,比传统的RDBMS解决方案更好.就个人而言,我是 RavenDb的忠实粉丝.另一个相当不错的选择是 CouchDb.我会避免使用MongoDb,因为它在当前的实现中确实不是一个安全的数据位置.

即使您不能使用文档数据库,也可以通过将表设置为在传统列中使用序列化XML或json的有效负载字段来创建一些元数据,从而使SQL伪装成一个.这将让您在远离EAV-land时搜索元数据. EAV-land是一个可怕的地方.

UPDATE

我不确定是否存在好的指南,但这个概念非常简单.基本思想是将要查询的部分分解为表中的“普通”列 – 这使您可以以标准方式进行查询.当您找到所需的记录时,您可以获取CLOB并根据需要反序列化它.在你的情况下,你会有一个看起来像这样的表:

SurveyAnswers
  Id INT IDENTITY
  FormId INT
  SubmittedBy VARCHAR(255)
  SubmittedAt DATETIME
  FormData TEXT

一些提示:a)使用基于文本的序列化例程.给你一个解决数据错误的机会,真正有助于调试.b)对于SQL 2000,您可能需要考虑将CLOB(保存有效负载数据的TEXT字段)分解为单独的表.自从我使用SQL 2000以来已经很长时间了,但我的回忆是使用TEXT列对表做了坏事.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读