是存储为Json Blob还是创建列?

时间:2018-09-07 17:31:23

标签: sql json sql-server-2017

我正在构建一个“过滤器组件”,显示该“产品类型”的所有可用过滤器。

相当标准的东西只是想到百思买,亚马逊,craiglist样式过滤器。

现在,我主要关注如何生成过滤器选项(而不是如何在用户单击过滤器选项时处理,然后必须关闭过滤器并向下过滤结果)。

enter image description here

所以我创建了一个具有这样的json对象

将创建每个标题部分(HardDrive,Ram大小,CPU核心数),它是什么类型(复选框,文本框), 该部分是否应该打开, 它应该有一个搜索框吗?

For i = 1 To 5
Valuex = Evaluate("=IsNumber(Value(Mid(C5, 2, 1)))")
MsgBox (Valuex)
Valuex1 = Evaluate("=Left(Trim(C5), 1) = ""R""")
MsgBox (Valuex1)

If ((Evaluate("=Left(Trim(C5), 1) = ""R""") = "True") And (Evaluate("=IsNumber(Value(Mid(C5, 2, 1)))") = "True")) Then

Range("D5").Formula = "=VLOOKUP(C5,[old.xls]Sheet1!$D:$V,19,0)"
MsgBox ("if")
Else
Range("D5").Formula = "=VLOOKUP(C5,[old.xls]Sheet1!$E:$V,18,0)"
MsgBox ("else")
End If
Next i

现在,我需要弄清楚是否应该按原样存储以上内容,还是应该将其分解为列格式。

 {
      type: "", // this is what type of filter it will be (textbox, checkboxes and etc)
      header: "Filter Header",
      property: "", // this maps it back to the column name in db used when filter is actually triggered.
      hasSearchBox: false, // some filter options are long so search box can be shown.
      isOpen: true, // controls if this filter should be in an open or closed state.
      for: ["What Products this filter applies to. Some of these filters are common between all products"]
    },

这确实使将来添加新过滤器变得更加容易,但是我有点担心是否出现了一些新选项,该选项可能仅适用于某些过滤器而不适用于其他过滤器(例如,许多空列),或者是否需要将来会更复杂的对象(例如为文本框设置占位符名称)。

或者如果我应该像这样存储它

Filters Tbl
Id
ProductTypeId
type
header
property
hasSearchBox
isOpen

0 个答案:

没有答案