sql - ASP.NET 和 SQL Server 中的动态表单
问题描述
一些上下文:我目前有一个用作文档搜索器过滤器的表单,有一个下拉列表,其中加载了 SQL Server 表中的数据,当我更改它时,字段会根据类型更改其显示文档。
它的工作原理是我拥有 html 上的所有字段,并通过类确定哪个字段对应于哪个文档类型。因此,每次添加新文档类型时,我都必须编辑 html 以将新类型包含到字段中。
我的问题是:我怎样才能做到这一点,这样我就不需要更改 html 或 js 或 Web 应用程序中的任何代码,而只在每次必须添加新类型的文档时更改 SQL Server?
解决方案
要实现可扩展文档,您可以尝试以下操作:添加新表:
document_type_fields:
id, document_type, field_name, field_type
1, sms, received_date, date
2, sms, content, text(255)
3, email, content, textarea(1000000)
4, email, to_address, text(255)
为了渲染文档字段,找到它的类型,找到文档类型字段:sms:
received_date, date
content, text(255)
添加 javascript 开关 (document_type) 并将其字段显示为 html 控件
将特定于 document_type 的字段保存在单独的表中:
document_specific_fields(document_id, field_name, field_value)
document_id 是引用主表的主键和外键(具有所有文档类型共有的字段):
documents(document_id, document_type, ...)
推荐阅读
- scala - 如何解决scala中的错误“类型不匹配,预期:_$1,实际:任何”?
- typescript - 为什么编译后内容脚本不加载?
- r - 创建新列,设置值等于 R 中单独列表中的静态值
- unity3d - 有没有办法给脸而不是顶点着色?
- reactjs - 尝试在 userEffect 上定义对象数组的反应最大状态更新错误
- java - 在比较器中使用字符串时出错
- sql - 如何处理一些匹配正则表达式的字符串?
- pytorch - 如何使用 PyTorch DataLoader 进行强化学习?
- swiftui - 如何根据某个标签值返回不同的视图?
- html - 当我将自己的 3D 模型添加到
用于场景查看器的 html 中的标签,模型不加载