Database design 需要产品及其规格数据库设计方面的帮助吗
不同的产品有不同的规格设置。这些产品也被分类。如何设计这种需求?任何想法都将受到高度赞赏。例如—Database design 需要产品及其规格数据库设计方面的帮助吗,database-design,Database Design,不同的产品有不同的规格设置。这些产品也被分类。如何设计这种需求?任何想法都将受到高度赞赏。例如— Sony Xperia ZL General Features Form - Touch SIM - Single SIM, GSM Software OS Version - Android OS, v4.1.2 (Jelly Bean) Operating Freq - GSM - 850, 900,
Sony Xperia ZL
General Features
Form - Touch
SIM - Single SIM, GSM
Software
OS Version - Android OS, v4.1.2 (Jelly Bean)
Operating Freq - GSM - 850, 900, 1800, 1900; UMTS - 2100
Display
Type - TFT Capacitive
Size - 5-inch
LG HD LED Television
GENERAL
Model 47LN5710
Screen Type -
Display Size 47 Inch
VIDEO FEATURES
Aspect Ratio -
Dynamic Ratio -
View Angle 178 Degree
这取决于你用它做什么。有一个简单的解决方案,可以创建一个表,例如“Spec Attributes”,它只有两个三列:产品Id、Spec名称、Spec值。这将是一个简单的修复-但不提供支持或数据完整性 更好的解决方案是在属性周围设置一些保护措施。与上面类似,这将涉及到一个表,该表将您的“列”(即SIM、OS版本)存储为行。我建议使用预定义的属性,甚至“类型”来限制您正在使用的属性,以便于查询 比如说,
DeviceTypes
DeviceTypeId | Name
01 | Camera
02 | Television
03 | Mobile Phone
Category
CategoryId | Name
01 | General
02 | Video Features
DeviceAttributeTypes
DeviceAttribTypeId| DeviceTypeId | CategoryId |AttributeName | DataType
01 | 01 | 01 | SIM | Varchar
02 | 01 | 01 | Size | NUMBER
03 | 02 | 02 | Display Size | NUMBER
04 | 02 | 01 | Model | Varchar
DeviceAttribut
DeviceId | DeviceAttirbTypeId | Value
13 | 01 | Single Sim, GSM
13 | 02 | 5
14 | 04 | 47LN5710
在本例中,您将使用所需的属性和类型对设备类型和类别表进行“硬编码”。这使您可以选择按属性的类型或类别过滤属性
i、 e.要获得所有设备及其属性的列表,您可以使用下面的查询。然后,您可以在ID或类别或设备类型的名称上添加“WHERE”
SELECT d.DeviceName
, dat.AttributeName
, dar.Value
FROM Device d
LEFT JOIN DeviceAttribute da
ON d.DeviceId = da.DeviceId
LEFT JOIN DeviceAttributeType dat
ON da.DeviceAttribTypeId = dat.DeviceAttribtypeId
要在需要返回属性为列的resultset的地方进行查询,我始终使用;带注释。(示例)这取决于您使用它的目的。有一个简单的解决方案,可以创建一个表,例如“Spec Attributes”,它只有两个三列:产品Id、Spec名称、Spec值。这将是一个简单的修复-但不提供支持或数据完整性 更好的解决方案是在属性周围设置一些保护措施。与上面类似,这将涉及到一个表,该表将您的“列”(即SIM、OS版本)存储为行。我建议使用预定义的属性,甚至“类型”来限制您正在使用的属性,以便于查询 比如说,
DeviceTypes
DeviceTypeId | Name
01 | Camera
02 | Television
03 | Mobile Phone
Category
CategoryId | Name
01 | General
02 | Video Features
DeviceAttributeTypes
DeviceAttribTypeId| DeviceTypeId | CategoryId |AttributeName | DataType
01 | 01 | 01 | SIM | Varchar
02 | 01 | 01 | Size | NUMBER
03 | 02 | 02 | Display Size | NUMBER
04 | 02 | 01 | Model | Varchar
DeviceAttribut
DeviceId | DeviceAttirbTypeId | Value
13 | 01 | Single Sim, GSM
13 | 02 | 5
14 | 04 | 47LN5710
在本例中,您将使用所需的属性和类型对设备类型和类别表进行“硬编码”。这使您可以选择按属性的类型或类别过滤属性
i、 e.要获得所有设备及其属性的列表,您可以使用下面的查询。然后,您可以在ID或类别或设备类型的名称上添加“WHERE”
SELECT d.DeviceName
, dat.AttributeName
, dar.Value
FROM Device d
LEFT JOIN DeviceAttribute da
ON d.DeviceId = da.DeviceId
LEFT JOIN DeviceAttributeType dat
ON da.DeviceAttribTypeId = dat.DeviceAttribtypeId
要在需要返回属性为列的resultset的地方进行查询,我始终使用;带注释。(示例)这取决于您使用它的目的。有一个简单的解决方案,可以创建一个表,例如“Spec Attributes”,它只有两个三列:产品Id、Spec名称、Spec值。这将是一个简单的修复-但不提供支持或数据完整性 更好的解决方案是在属性周围设置一些保护措施。与上面类似,这将涉及到一个表,该表将您的“列”(即SIM、OS版本)存储为行。我建议使用预定义的属性,甚至“类型”来限制您正在使用的属性,以便于查询 比如说,
DeviceTypes
DeviceTypeId | Name
01 | Camera
02 | Television
03 | Mobile Phone
Category
CategoryId | Name
01 | General
02 | Video Features
DeviceAttributeTypes
DeviceAttribTypeId| DeviceTypeId | CategoryId |AttributeName | DataType
01 | 01 | 01 | SIM | Varchar
02 | 01 | 01 | Size | NUMBER
03 | 02 | 02 | Display Size | NUMBER
04 | 02 | 01 | Model | Varchar
DeviceAttribut
DeviceId | DeviceAttirbTypeId | Value
13 | 01 | Single Sim, GSM
13 | 02 | 5
14 | 04 | 47LN5710
在本例中,您将使用所需的属性和类型对设备类型和类别表进行“硬编码”。这使您可以选择按属性的类型或类别过滤属性
i、 e.要获得所有设备及其属性的列表,您可以使用下面的查询。然后,您可以在ID或类别或设备类型的名称上添加“WHERE”
SELECT d.DeviceName
, dat.AttributeName
, dar.Value
FROM Device d
LEFT JOIN DeviceAttribute da
ON d.DeviceId = da.DeviceId
LEFT JOIN DeviceAttributeType dat
ON da.DeviceAttribTypeId = dat.DeviceAttribtypeId
要在需要返回属性为列的resultset的地方进行查询,我始终使用;带注释。(示例)这取决于您使用它的目的。有一个简单的解决方案,可以创建一个表,例如“Spec Attributes”,它只有两个三列:产品Id、Spec名称、Spec值。这将是一个简单的修复-但不提供支持或数据完整性 更好的解决方案是在属性周围设置一些保护措施。与上面类似,这将涉及到一个表,该表将您的“列”(即SIM、OS版本)存储为行。我建议使用预定义的属性,甚至“类型”来限制您正在使用的属性,以便于查询 比如说,
DeviceTypes
DeviceTypeId | Name
01 | Camera
02 | Television
03 | Mobile Phone
Category
CategoryId | Name
01 | General
02 | Video Features
DeviceAttributeTypes
DeviceAttribTypeId| DeviceTypeId | CategoryId |AttributeName | DataType
01 | 01 | 01 | SIM | Varchar
02 | 01 | 01 | Size | NUMBER
03 | 02 | 02 | Display Size | NUMBER
04 | 02 | 01 | Model | Varchar
DeviceAttribut
DeviceId | DeviceAttirbTypeId | Value
13 | 01 | Single Sim, GSM
13 | 02 | 5
14 | 04 | 47LN5710
在本例中,您将使用所需的属性和类型对设备类型和类别表进行“硬编码”。这使您可以选择按属性的类型或类别过滤属性
i、 e.要获得所有设备及其属性的列表,您可以使用下面的查询。然后,您可以在ID或类别或设备类型的名称上添加“WHERE”
SELECT d.DeviceName
, dat.AttributeName
, dar.Value
FROM Device d
LEFT JOIN DeviceAttribute da
ON d.DeviceId = da.DeviceId
LEFT JOIN DeviceAttributeType dat
ON da.DeviceAttribTypeId = dat.DeviceAttribtypeId
要在需要返回属性为列的resultset的地方进行查询,我始终使用;带注释。(示例)看我的,可能有用。看我的,可能有用。看我的,可能有用。看我的,可能有用。看我的,可能有用。