繁体   English   中英

存储每个资产的自定义参数的最佳方法

[英]Best way to store custom parameters per asset

我有一张桌子,里面有关于我拥有的每项资产的信息(笔记本电脑,屏幕,桌面,扫描仪等)。 我还有另一个表,其中我有每个资产的自定义列(因此对于特定的桌面,我可以有一个名为“Color”的自定义列)...快速shematic:

资产表

AssetID     Description
---------------------------
1           Desktop HP79801

资产自定义列

AssetID     Column1     Column2
-----------------------------------
1           Color       BluRay ?

现在我想存储每列的值。 我目前为每个单元做的方式是:

AssetID     UnitID      Column1     Column2
-----------------------------------
1           1           Blue        Yes
1           2           Blue        No
1           3           Black       No
1           4           Blue        Yes

现在我的问题是,有没有更有效的方法来做到这一点,我怎样才能以高效的方式将列数增加到无穷大? 可能吗 ?

最后,如何有效地存储自定义产品属性?

简而言之,是的。

你所拥有的东西丝毫不具备可扩展性。 你想要的是拥有一个资产表,一个自定义参数表和一个“链接”表。 然后,在链接表中输入多个值,而不是多个列。

举个例子:

资产表

AssetID     Description
---------------------------
1           Desktop HP79801

属性列

AssetAttr       Column1     
-----------------------------------
1               Color
2               Size

链接表

AssetID     UnitID      AttrId        AttrValue 
-----------------------------------
1           1           1             Blue
1           1           2             Big
1           2           1             Orange
1           2           2             Giant

如果您的属性都是特定于模型的,您可能还想将AssetId列添加到资产自定义列,但我个人不会这样做,除非您的所有资产都没有共享属性。

您可能还想进一步标记。 您可能希望使用数据类型注释属性表,并且可能有另一个与包含可能数据值的属性表相关的表,然后在链接表中插入上述表中的条目的ID。

另一种解决方案是完全使用模式较少的db。 我最喜欢的是Mongo 另一种选择是CouchDB或其中一个众多的键值数据库。

不要在这里开始一场noSQL战争,但这些数据库可以更优雅地处理这样的情况 - 单个文档可以存储所有数据并在没有任何连接或视图的情况下进行检索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM