我正在寻找在2019年创建ERD(SQL Server)的最佳实践,以用于以下示例。
我有多种产品(汽车如雷诺,欧宝) - 大约10万条记录。每个产品都有系列,例如(clio,laguna),每个系列都有一个车型,例如(I,II,III)
每个汽车模型都有许多具有多个值的属性(主要是集合值),例如
正如您在图表中看到的,一些属性具有一个值,其中一些值具有集合值。一些属性在不同的汽车模型中具有相同的名称,一些属性是新的。属性中的值通常会重复,但它们也是模型的特定值
在我的真实模型中,每个产品的属性和值每月会改变几次。
所以我的问题是:创建数据库模式的最佳做法是什么? (我使用SQL Server 2017和ASPNET.CORE作为后端API)
下面我向您展示我的解决方案:
但接下来呢?大多数属性都有一个集合值。我应该在这种情况下使用每个属性的json值吗? E.g {“length”:[“4848”,“5000”,“5005”]}。尽管有EAV模式并且保持基础归一化1NF我想为每个属性创建单独的表与值并创建与汽车模型(I,II,III)的关系,但表的数量将是巨大的。
{
"III" :
{
"length": ["4848", "5000", "5005"],
"UpholsteryColor" : ["black", "bronze"],
"Color" : ["blue", "black", "green"]
},
"II" :
{
"length": ["4000", "5000"],
"UpholsteryColor" : ["black", "bronze"],
"Color" : ["blue", "violet"],
"GasCar" : 1
}
}
我选择了4号选项,但任何建议都将不胜感激。