在关系数据库中存储“元数据”的正确方法是什么?

Eth*_*han 5 mysql sql rdbms normalization

我有一个名为 的表assets,其中资产可以属于用户、团队或部门,也可能属于每个用户、团队或部门的多个。我的问题是资产变化很大,并且可能具有与每项资产不同的相关属性。

前任。这些可能是资产:

1.)
type:workbench
cost:200
vendor:Acme Co.
color:black
2.)
type:microscope
serial_no:BH-00102
purchase_date:1337800923
cost:2040
Run Code Online (Sandbox Code Playgroud)

对于数百到数千种不同类型的资产,这种情况可能会持续下去。

如何以易于查询的标准化方式存储此类数据,而无需在每次添加新资产类型时更改表?有些字段也存在于所有资产中,例如成本。

到目前为止,我认为我应该:

assets
id,cost,purchase_date,asset_type_id

asset_types
id,name

division_assets
division_id,asset_id

user_assets
user_id,asset_id
Run Code Online (Sandbox Code Playgroud)

但我不知道将变化的数据放在哪里

Mar*_*sky 3

我建议这样:

assets (

   id
   asset_type_id
   vendor_id
   cost
   purchase_date

)

asset_poperties (

    id
    asset_id
    asset_property_type_id
    value

)

asset_property_types (

     id
     property_type

)

asset_types (

   id
   asset_type

)

vendors (

   id
   vendor

)
Run Code Online (Sandbox Code Playgroud)