我面临以下数据库设计问题。 我有三个存储资产信息的表和一个用于退休资产的表。
车辆
ID. Primary key
Name.
Model.
Manufacture_year.
Manufacture _name.
Engine _size.
Price.
IT
ID. Primary key
Name.
Type.
Operating_system.
License_size.
price.
家具
ID. Primary key
Name.
Type.
Color.
price
retired_asset
Asset_ID. // I need to link this colum to the ID column for either the vehicle, IT or furniture table.
Retired_reason.
Date
所以我有以下两个问题: -
由于每个资产都有不同的列和不同的业务逻辑。那么我的方法是将每种资产类型存储在单独的表中吗?
在retired_asset
表格中,如何将foreign_key asset_id
链接到车辆,IT或家具表中的ID
列?
提前感谢您的帮助。
答案 0 :(得分:2)
Vehicle,IT和Furniture实际上是“Asset”类的子类。
使用class-table-inheritance方法与共享主键相结合,您可能会受益。您可以通过访问标签并单击信息来获取详细信息。
通过这种方式实现的最大优势是外键始终可以引用Asset表,但也可以通过共享主键的魔力引用其中一个子类表。
设置它需要做一些工作。在你的情况下,我推荐它。