Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设计ASP.NET核心SQL应用程序,用户应该能够创建不同输入项的形式并在数据库中存储值_C#_Sql_Asp.net Mvc_Entity Framework_Database Design - Fatal编程技术网

C# 如何设计ASP.NET核心SQL应用程序,用户应该能够创建不同输入项的形式并在数据库中存储值

C# 如何设计ASP.NET核心SQL应用程序,用户应该能够创建不同输入项的形式并在数据库中存储值,c#,sql,asp.net-mvc,entity-framework,database-design,C#,Sql,Asp.net Mvc,Entity Framework,Database Design,我已经开始从事一个web应用程序项目,其中的一个功能是:管理员用户可以创建/更新一些自定义表单,从数据库中选择不同的输入类型,最终用户可以以重复的方式/有时每天更新表单数据,并将数据存储在数据库中以备将来使用。要详细说明,管理员用户可以选择任何“复选框”、“文本框”、“文本区域”、“日期时间”、“温度””等输入类型并创建表单。最终用户可以读取表单并输入要保存在数据库中的值,以便向管理员报告 我需要在项目的后端使用ASP.NET核心MVC、SQL、EF、代码优先迁移 我想(作为一个例子)可能是一个

我已经开始从事一个web应用程序项目,其中的一个功能是:管理员用户可以创建/更新一些自定义表单,从数据库中选择不同的输入类型,最终用户可以以重复的方式/有时每天更新表单数据,并将数据存储在数据库中以备将来使用。要详细说明,管理员用户可以选择任何“复选框”、“文本框”、“文本区域”、“日期时间”、“温度””等输入类型并创建表单。最终用户可以读取表单并输入要保存在数据库中的值,以便向管理员报告

我需要在项目的后端使用ASP.NET核心MVC、SQL、EF、代码优先迁移

我想(作为一个例子)可能是一个带有Id和Name属性的
表单模型,
带有Id、Name、FormId的文本框模型,
带有Id、Name的日期时间模型,FormId
等,用于创建表单,然后当用户输入可以使用数据库中的其他模型/表更新的值时,例如
TextBoxRecord model with Id、TextBoxId、Value、UserId、,DateEntered等。
但是,每次输入值和向管理员显示报告时,都会有太多的表需要更新和读取


我非常感谢您对数据模型的良好设计思想或如何实现这种逻辑的任何帮助。如果您有任何问题,请随时提问。谢谢。

不久前,我在做一个simular项目。我们不会将每个表单字段都存储在DB中,因为我们不希望每次需要添加某种新的表单字段时都更新DB。我们相信,由HTML+JS来决定对特定对象属性使用何种输入

我们创建一个序列化程序,将表单结构序列化为xml,并将其存储在数据库中。在这个xml中,我们为每个FormField保留一个表名(EF
DataSet
name)和列名(模型属性的名称)

当我们需要向用户显示表单时,我们从DB反序列化表单,将其打包到ViewModel(因为我们不想向用户显示DB表的真实名称),并将其作为JSON发送到JavaScript代码。JS然后构造表单元素并将其显示给用户。当用户提交数据时,我们再次从DB反序列化相应的表单,并使用用户输入的数据更新DB中的实际模型


希望这会有所帮助。

对于所有的人,嗯,他们觉得这是一个有趣的问题,并且“也想知道答案”,这里有一篇有趣的文章可以阅读

这个故事从(至少和)完全相同的用户需求开始


(对于那些因为“不是答案”而想投反对票的人来说:这更像是一个答案,因为它非常详细地说明了为什么你从来都不想走上那条小路。)

谢谢你的回答。这给了我一个很好的起点。如果我需要进一步的帮助,我可以在这个周末阅读有关XML序列化的内容并返回给您吗?XML序列化很简单,您可以从开始。当然,如果你需要任何帮助,你可以添加评论。谁否决了我的问题,为什么不发表评论,让我知道这个问题出了什么问题?在这里提问之前,我尝试了谷歌好几天,我不知道我可以按照@vasily.sib的建议使用序列化。那么,新开发人员的问题类型的期望是什么?也许我能从下一个开始变得更好。