gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:25:31 26 4
gpt4 key购买 nike

我的任务是创建一个应用程序,允许用户将数据输入到 Web 表单中,该表单将被保存,然后最终用于填充 pdf 表单字段。

我在尝试想出一种将字段值存储在数据库中的好方法时遇到了麻烦,因为表单将是动态的(基于 pdf 字段)。

在应用程序本身中,我将在哈希表(字段名、字段值)中传递数据,但我不知道将哈希转换为数据库值的最佳方法。

我正在使用 MS SQL Server 2000 和 asp.net webforms。有人做过类似的事情吗?

最佳答案

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

即使您无法使用文档数据库,您也可以通过将表设置为在传统列中包含一些元数据以及序列化 XML 或 json 的有效负载字段,使 SQL 假装为文档数据库。这将让您在远离 EAV 领域的情况下搜索元数据。 EAV-land 是一个可怕的地方。

更新

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

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

一些提示:
a) 使用基于文本的序列化例程。给您一个修复数据错误的机会,并且确实有助于调试。
b) 对于 SQL 2000,您可能需要考虑将 CLOB(保存负载数据的 TEXT 字段)分解为单独的表。我已经很久没有使用 SQL 2000 了,但我的内存是使用 TEXT 列对表做了坏事。

关于asp.net - 用于存储表单字段和字段值的数据库架构建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com