我正在寻找在2019年创建ERD(SQL Server)的最佳实践,作为以下示例。
我有多种产品(雷诺,欧宝等汽车)-约有10万条记录。 每个产品都有一个系列,例如(克里奥,拉古纳),每个系列都有一个汽车模型,例如(I,II,III)
每种汽车模型都有很多具有多个值(主要是集合值)的属性,例如
正如您在图表上看到的那样,某些属性具有一个值,而某些具有集合值。有些属性在不同的汽车型号中具有相同的名称,有些则是新属性。 属性中的值通常会重复,但它们也特定于模型
在我的真实模型中,每个产品的属性和值每月都会更改几次。
所以我的问题是:创建数据库架构的最佳实践是什么? (我将SQL Server 2017和ASPNET.CORE用于后端API)
下面我向您展示我的解决方案:
但是接下来呢?通常,属性具有集合值。在这种情况下,是否应该为每个属性json值使用?例如{“ length”:[“ 4848”,“ 5000”,“ 5005”]}。 尽管有EAV模式,并且保持基本标准化1NF,但我想为每个属性创建带有值的单独表格并创建与汽车模型(I,II,III)的关系,但是表格的数量将是巨大的。
在SeriesModel表中使用以下json结构创建JsonObject列:
{ "III" : { "length": ["4848", "5000", "5005"], "UpholsteryColor" : ["black", "bronze"], "Color" : ["blue", "black", "green"] } }
仅创建两个表Car和BrandSeries,在BrandSeries中,我添加了具有以下json结构的JsonObject列
{
"III" :
{
"length": ["4848", "5000", "5005"],
"UpholsteryColor" : ["black", "bronze"],
"Color" : ["blue", "black", "green"]
},
"II" :
{
"length": ["4000", "5000"],
"UpholsteryColor" : ["black", "bronze"],
"Color" : ["blue", "violet"],
"GasCar" : 1
}
}
答案 0 :(得分:0)
我选择了第4个选项,但任何建议都将不胜感激。