【问题标题】:Creating dynamic fields in a form MVC/SQL Server在 MVC/SQL Server 表单中创建动态字段
【发布时间】:2012-09-01 02:44:36
【问题描述】:

假设我们预定义了包含 3 个字段的表单:FirstName、LastName、Email,并且此表单映射到具有 ID、FirstName、LastName、Email 的表用户

假设用户想要添加一个新字段,例如 BirthDate。用户将选择字段的类型,这里是 DateTime texbox 和字段旁边的文本,如出生日期,但是如何在用户表中添加此列?

任何帮助将不胜感激

约瑟夫

【问题讨论】:

    标签: asp.net-mvc forms dynamic


    【解决方案1】:

    用户没有现实的方法将字段动态添加到实际的数据库表中,而不是让您拥有像“DateOfBirth”或“ShoeSize”这样的新字段。

    但是,您可以通过更改应用程序的核心设计来从用户那里获取动态数据。您需要做的是抽象您的数据库并将每个值存储为单独的记录,而不是将数据存储在固定的“水平”表中 - 有点像“垂直”表。

    所以你会有一张这样的桌子

    Field, Data, Type
    ---------------------------
    "FirstName", "John", string
    "LastName", "Smith", string
    "DateOfBirth", "01/01/1950", datetime
    "ShoeSize", "4", int
    

    这是架构问题,而不是技术问题。

    有一篇非常好的文章 here 更深入地讨论了它。

    重要的是要理解,这确实使您的应用程序更加抽象,类型安全性降低,因此更加复杂。除非您完全了解所涉及的额外工作,否则我不建议您尝试这样做。

    【讨论】:

    • 感谢您的提醒。我很感激。
    猜你喜欢
    • 1970-01-01
    • 2018-05-14
    • 2023-03-16
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多