我对数据库设计很陌生,想问下列方案是否可行。我目前正在尝试设计一个包含名为Asset的实体的数据库。资产实体将具有不同类型的资产,例如笔记本电脑,台式机,软件等。在资产表旁边,还有assetInfo表和相应的资产类型表(例如,桌面,笔记本电脑,软件等)。资产类型表包含有关该资产的信息(ID,型号,购买日期等)。资产表包含有关哪个资产的信息(它是笔记本电脑,是桌面,是软件吗?)和assetInfo表包含资产当前用户的信息(哪个部门和哪个建筑物的雇主) ,房间就放了。)
为了实现这一点,我想出了两个想法。
第一个是资产实体是父类,资产类型是子类,资产和资产类型之间有x个不相交的关系。有些东西告诉我,随着资产类型数量的增加,这将带来很多复杂性。
另一种选择是拥有星型模式。资产是事实表,资产类型可以是维度表。唯一的问题是,当我有另一个名为assetInfo的表时,它应该显示谁在某个位置拥有哪个资产,它需要拥有资产实体的所有主键(如果我错了,请纠正我)。所以我的问题是:是否可以将事实表引用到另一个事实表?
一个例子是:
PK:SoftwareID PK:DesktopID PK:LaptopID FK:SoftwareID FK:DesktopID FK:LaptopID
PK:SoftwareID
PK:LaptopID
PK:DesktopID
PK:EmployerID
PK:DepartmentID
PK:BuildingID
PK:RoomID
PK:assetID PK:EmployerID PK:DepartmentID PK:BuildingID PK:RoomID