Sql 结构数据库模式设计

Sql 结构数据库模式设计,sql,database,oracle,database-design,db-schema,Sql,Database,Oracle,Database Design,Db Schema,我正在为下面的json开发db模式。产品有不同的参数类别,类别有不同的参数。同一参数可能属于不同的类别。产品可以有一个或多个类别。产品可能具有相同的类别和不同的参数。让我知道我的方法是否正确。我应该保持productCategory节和节参数链接,还是保持简单表的链接,就像我在下面创建的一样。同一类别的所有产品都将具有相同的部分和参数,因此我将productCategory与参数链接 table Parameters parameterid parameterName standard valu

我正在为下面的json开发db模式。产品有不同的参数类别,类别有不同的参数。同一参数可能属于不同的类别。产品可以有一个或多个类别。产品可能具有相同的类别和不同的参数。让我知道我的方法是否正确。我应该保持productCategory节和节参数链接,还是保持简单表的链接,就像我在下面创建的一样。同一类别的所有产品都将具有相同的部分和参数,因此我将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"
          }
        ]
      }
    ]
  }
}

最近我们进行了相同的模式设计。我们所做的工作如下:

  • 列出所有可能的参数以及参数中可能的所有不同字段
  • 然后我们创建了模板,就像这里的一样,它是一个类别,是一些参数的组合
  • 然后,在本例中,该模板被分配给任何类似于产品的实体
这种方法的优点 -可以在列表中添加任意数量的参数 -可以根据需要自定义模板并将其附着到实体

如何使用它

  • 将参数用作像对象数组一样的触点
  • 使用选定参数的数组创建模板,以便为每个类别创建选定参数的副本,以确保常量数组不会被更新
  • 模板是第二个表,它可以有其他字段,如上次更新时创建它的模板名称(类别名称),即使是从哪个类别创建它,也可以像引用自己一样
  • 最终的实体表(产品)将引用该模板表以及该模板中的一个数组。因此,“引用”提供了有关参数的信息,您可以使用要使用的值更新副本

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

您是如何将参数链接到类别以及类别链接到产品的?您是否使用单独的表进行链接?如何链接3个表。