使用基于“类型”的变量存储MySQL对象

时间:2018-06-21 06:17:15

标签: mysql relational-database

快速提问了如何最好地在MySQL数据库中存储一些数据。

表格-资产

ID
名称
说明
型号

表格-资产类型

ID
名称

每个资产将具有资产类型,并基于该类型将具有其他字段(例如,HP ProDesk可能具有工作站类型,并且基于该类型,还将具有RAM和CPU字段) 。如何最好地存储这些数据?

2 个答案:

答案 0 :(得分:0)

我将为每种类型创建表。有一些通用的表可以保存记录,这些记录具有不同的属性集(会映射到不同的列集),这是不切实际的。

因此,例如,表Workstation带有适当的列。

答案 1 :(得分:0)

最好有一个实体关系图,以简要说明对象之间的关系。例如,一个资产只能具有一个类型,而一个类型可以属于许多不同资产,这意味着资产和资产类型的关系是一对多关系。

资产类型(一种)-资产(许多)

由于这是一对多关系,因此应在资产表的“许多”侧放置一个外键列。

  

根据该类型,它还将具有RAM和CPU字段

为此,我建议您为每种资产类型构建一个表,并从 asset 表继承。例如,工作站和监视器是资产。因此,您的数据库应如下所示。

表格:资产类型
Asset_Type_Id(PK)
Asset_Type_Name

表格:资产
Asset_Id(PK)
资产名称
资产说明
Asset_Model_Number
Asset_Type_Id(FK参考资产类型

表:工作站
WorkStation_Id(PK,FK参考资产
WorkStation_Name
CPU
GPU

表:监视器
Monitor_Id(PK,FK参考资产
Monitor_Name
分辨率