在表单MVC / SQL Server中创建动态字段

时间:2012-09-07 08:19:42

标签: asp.net-mvc forms dynamic

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

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

任何帮助都将受到高度赞赏

约瑟夫

1 个答案:

答案 0 :(得分:1)

用户没有实际的方法可以动态地将字段添加到实际的数据库表中,而不是让你有一个像'DateOfBirth'或'ShoeSize'这样的新字段。

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

所以你会有一个像

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

它的架构问题不是技术问题。

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

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