首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分析场景性能?

分析场景性能?
EN

Stack Overflow用户
提问于 2014-01-05 21:41:41
回答 1查看 43关注 0票数 3

我想设计一个动态表单一样的东西,在其中管理员定义每个表单域。我设计了3个表:用于共享属性的主表,然后是将mainformID作为外键并定义每个表单字段的表单字段表。例如:

代码语言:javascript
运行
复制
AutoID | FormID  |  FieldName 
_____________________________
100    | Form1   |  weight
101    | Form1   |  height
102    | Form1   |  color
103    | Form2   |  Size
104    | Form2   |  Type
 ....

至少有一个如下的表单值表:

代码语言:javascript
运行
复制
FormFieldID  |  Value  | UniqueResponseID
___________________________________________
100          |   50px   |   200
101          |   60px   |   200
102          |   Red    |   200

100          |   30px   |   201
101          |   20px   |   201
102          |   Black  |   201


103          |   20x10  |   201
104          |    Y     |   201
....

对于每个表单,我必须连接这3个表,以捕获所有字段和值。我想知道这是不是设计这样一个场景的唯一方法?它会降低sql性能吗?或者有没有更快更好的方法?

EN

回答 1

Stack Overflow用户

发布于 2014-01-06 03:34:47

我喜欢Branko的方法,它非常类似于我在过去创建的元数据模型,所以这篇文章是他的扩展。您可能想要添加一个数据类型表,它可以同时用于本机类型(int、varchar、bit、datetime等)。和你自己的定义(尽管我不认为这是即兴的)。

因此,Branko的"value“列变为:

value_tinyint tinyint

value_int整型

value_varchar varchar(xx)

等。

使用datatype_id (可能是tinyint)作为"mydatatype“表的外键。

请原谅缺乏像BD这样漂亮的ER图

mydatatype

datatype_id tinyint

代码varchar(16)

description varchar(64) --供参考

此扩展应:

a.在读取或写入数据时,为您节省了大量的类型转换

b.允许使用一些易于构造的动态SQL进行读写操作

此外(这可能超出了范围),您可能希望存储这些对象的创建/保存顺序,以及基于按钮按下/复选框/单选按钮选择等的条件显示。

我不会在这里详细介绍,因为我不确定你是否需要这些东西,但如果你需要这些东西,我会每隔一段时间检查一次,然后给你回复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20934239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档