有一个关于如何在mysql数据库中最好地存储一些数据的快速问题。表-资产身份证件名称描述型号表-资产类型身份证件名称每个资产都将有一个资产类型,并且基于该类型,它将有其他字段(例如,hp prodesk可能有一种工作站类型,并且基于该类型,它还将有ram和cpu字段)。如何最好地存储这些数据?
kxe2p93d1#
我会为每种类型创建一个表。拥有一些可以保存记录的通用表是不实际的,这些表具有不同的属性集(Map到不同的列集)。所以,我有一张table Workstation 具有适当的列。
Workstation
n3schb8v2#
最好有一个实体关系图来简要描述对象之间的关系。例如,一个资产只能有一种类型,一种类型可以属于多个不同的资产,这意味着资产和资产类型的关系是一对多关系。资产类型(一)-资产(多)因为这是一对多关系,所以外键列应该放在“many”侧,即资产表中。基于这种类型,它还将有ram和cpu字段对于这一点,我建议您为每种类型的资产构建一个表,并从资产表继承。例如,工作站和监视器是资产。因此,您的数据库应该如下所示。表:资产类型资产类型id(pk)资产类型名称表:资产资产id(pk)资产名称资产描述资产型号资产类型\ id(fk参考资产类型)表:工作站工作站id(pk、fk参考资产)工作站名称中央处理器图形处理器表:监视器监视器id(pk、fk参考资产)监视器名称决心
2条答案
按热度按时间kxe2p93d1#
我会为每种类型创建一个表。拥有一些可以保存记录的通用表是不实际的,这些表具有不同的属性集(Map到不同的列集)。
所以,我有一张table
Workstation
具有适当的列。n3schb8v2#
最好有一个实体关系图来简要描述对象之间的关系。例如,一个资产只能有一种类型,一种类型可以属于多个不同的资产,这意味着资产和资产类型的关系是一对多关系。
资产类型(一)-资产(多)
因为这是一对多关系,所以外键列应该放在“many”侧,即资产表中。
基于这种类型,它还将有ram和cpu字段
对于这一点,我建议您为每种类型的资产构建一个表,并从资产表继承。例如,工作站和监视器是资产。因此,您的数据库应该如下所示。
表:资产类型
资产类型id(pk)
资产类型名称
表:资产
资产id(pk)
资产名称
资产描述
资产型号
资产类型\ id(fk参考资产类型)
表:工作站
工作站id(pk、fk参考资产)
工作站名称
中央处理器
图形处理器
表:监视器
监视器id(pk、fk参考资产)
监视器名称
决心