假设我们预定义了包含3个字段的表单:FirstName,LastName,Email,此表单映射到表用户:ID,FirstName,LastName,Email
假设用户想要为BirthDate添加新字段。用户将选择字段的类型,这里是DateTime texbox和字段旁边的文本,如出生日期,但如何在用户表中添加此列?
任何帮助都将受到高度赞赏
约瑟夫
答案 0 :(得分:1)
用户没有实际的方法可以动态地将字段添加到实际的数据库表中,而不是让你有一个像'DateOfBirth'或'ShoeSize'这样的新字段。
但是,您可以通过更改应用程序的核心设计来捕获用户的动态数据。您不需要将数据存储在固定的“水平”表中,而是需要做的是抽象数据库并将每个值存储为单独的记录 - 有点像“垂直”表。
所以你会有一个像
这样的表Field, Data, Type
---------------------------
"FirstName", "John", string
"LastName", "Smith", string
"DateOfBirth", "01/01/1950", datetime
"ShoeSize", "4", int
它的架构问题不是技术问题。
有一篇非常好的文章here可以更深入地讨论它。
重要的是要理解这确实使您的应用程序更抽象,更少类型安全,并且更复杂。除非你完全理解所涉及的额外工作,否则我不建议尝试这样做。