-1

我正在为下面的 json 开发数据库模式。product 有不同的 parameterCategories 和 category 有不同的参数。相同的参数可能属于不同的类别。产品可以有 1 个或多个类别。产品可能具有不同参数的相同类别。让我知道我的方法是否正确。我应该保持 productCategory-section 和 section-parameters 链接还是简单的表格可以像我在下面创建的那样工作。同一类别的所有产品都将具有相同的部分和参数,因此我将 productCategory 与参数联系起来。

table Parameters
parameterid
parameterName
standard
value
parametersection
productCategory


{
  "productCategory": "electronic",
  "products": {
    "productId": "productId",
    "productName": "productName",
    "productParameterSections": [
      {
        "productParameterSectionId": "appearance",
        "parameters": [
          {
            "parameterId": "color",
            "unit": "",
            "standard": "red",
            "val": "light red"
          },
          {
            "parameterId": "brightness",
            "unit": "",
            "standard": "high",
            "val": "medium"
          }
        ]
      },
      {
        "productParameterSectionId": "quantitative",
        "parameters": [
          {
            "parameterId": "length",
            "unit": "cm",
            "standard": "440",
            "val": "400"
          },
          {
            "parameterId": "height",
            "unit": "cm",
            "standard": "red",
            "val": "400"
          }
        ]
      }
    ]
  }
}
4

1 回答 1

1

最近我们致力于相同的模式设计。我们所做的如下:

  • 列出所有可能的参数以及可能的参数中的所有不同字段。
  • 然后我们创建了像这里这样的模板,它是一个由一些参数组合而成的类别。
  • 然后在这种情况下将该模板分配给任何实体,如产品。

这种方法的优点 - 您可以在列表中添加任意数量的参数 - 您可以根据需要自定义模板并将其附加到实体

如何使用它

  • 将参数用作对象数组之类的联系人。
  • 创建一个包含所选参数数组的模板,以便为每个类别创建所选参数的副本,以确保常量数组免受更新。
  • 模板是第二个表,它可以包含其他字段,例如模板名称(类别名称),它是在上次更新时创建它的,即使它是从哪个类别创建的,就像对拥有的引用一样。
  • 最终的实体表 ( product ) 将引用该模板表以及来自该模板的数组。因此参考提供了有关参数的信息,您可以使用要使用的值更新副本。

我希望它解释得很好,如果您仍然有任何疑问,请告诉我。

于 2020-04-26T12:37:35.810 回答