结构数据库架构设计

时间:2020-04-26 12:26:00

标签: sql database oracle database-design db-schema

我正在为以下json设计数据库架构。产品具有不同的参数类别和类别具有不同的参数。同一参数可能属于不同类别。产品可以具有1个或多个类别。产品可能具有具有不同参数的相同类别。让我知道我的方法是否正确。我应该保持productCategory-section和section-parameters链接或简单表可以按我在下面创建的方式工作。同一类别的所有产品都具有相同的部分和参数,因此我将pr​​oductCategory与参数链接起来。

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"
          }
        ]
      }
    ]
  }
}

1 个答案:

答案 0 :(得分:1)

最近,我们致力于相同的架构设计。我们所做的如下:

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

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

使用方法

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

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