gpt4 book ai didi

forms - 处理频繁变化的数据表单的选项

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

有哪些可能的设计来处理频繁变化的数据形式?

我有一个基本的 CRUD Web 应用程序,其中主要数据输入表单每年都会更改。因此,每条记录都应该与表单的特定版本相关联。这个要求有点新,所以现有的应用程序并没有考虑到这一点。

我正在寻找不同的方法来处理这个问题,希望避免 future 的技术债务。以下是我想出的一些选项:

  • 为每个版本创建一个新对象、UI 和一组表。这显然是最幼稚的做法。
  • 继续将所有字段添加到相同的对象和数据库表,但根据表单版本显示/隐藏它们。经过一些更改后,这将变得一团糟。
  • 构建表单定义,然后动态构建 UI 并将数据存储为某种类似字典的格式(例如 JSON/XML 或可能是面向文档的数据库)我认为这对于这个应用程序的范围来说太复杂了,尤其是对于 UI .

  • 还有哪些其他可能性?有没有人有这样做的经验?我正在寻找一些设计模式来帮助处理复杂性。

    最佳答案

    首先,我会在上面谈谈你的解决方案,然后我会给出我的答案。

  • 为每个人创建一个新表
    版本将需要新的
    每年编程,因为你会
    无法动态加入
    新表并包括新表
    列容易。这看起来很明显,并且确实使这是一个糟糕的选择。
  • 您提到的添加问题
    相同形式的列是
    正确的。另外,无论您使用什么数据库
    正在使用有多少个最大值
    它可以处理的列数和数量
    它可以在一行中包含的字节数。这可能会成为另一个问题。
  • 我认为的第三个选项是
    最接近你想要的。我会
    不将新列数据存储在
    JSON/XML 除非是为了复制
    以提高速度。我认为这是
    您最好的选择
  • 你没有提到的唯一选择
    将所有数据存储在 1
    数据库字段并使用 XML
    解析。这个选项会让它
    难以查询和编写报告
    反对。

  • 如果我必须这样做:
  • 第一个表将有
    列 ID(种子)、名称、
    输入类型,创建日期,
    ExpirationDate 和 CssClass。一世
    将其称为 tbInputs。
  • 第二个表将有
    5列,ID,Input_ID(用FK到
    tbInputs.ID)、Entry_ID(带有 FK 到
    主/原始表)值,以及
    创建日期。 FK 到
    主/原始表将允许您
    查找附加到哪些项目
    什么形式的条目。我会称之为
    表 tbInputValues。
  • 如果你不
    计划拥有那个基表然后
    我会使用一个简单的表来跟踪创建日期、创建者 ID、
    和 form_id。
  • 一旦你有了这些,你只需要创建一个动态表单,拉回当前事件的所有输入并显示它们。我会将所有动态控件放在某种容器中,例如 <div>因为它允许您在不知道每个元素的名称的情况下遍历它们。然后将输入的 ID 及其值插入到 tbInputValues 中。
  • 创建表单以添加或删除
    输入。这意味着你会
    没有太多的维护
    每年要做的工作。

  • 我认为这个解决方案可能看起来不是最有说服力的,但如果执行得当,我确实认为这是您需要最少技术债务的最灵活的解决方案。

    关于forms - 处理频繁变化的数据表单的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282530/

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