我一直在研究很多,普遍的共识是尽可能避免在数据库中序列化哈希,但是我的设计适合这种结构,所以我希望得到一些意见和/或建议。这是场景:
我有一个模型/表格:products
,其中包含金融产品。每个产品has_many
的投资策略,我最初存储在一个单独的:strategies
模型/表格中。由于每个产品都有完全不同的策略,并且每个策略都有不同的属性,因此将每个策略的属性操作到规范化、一致的列中变得非常困难(而且很棘手)(以至于我有一些产品我根本无法添加到应用程序中) . 此外,策略的属性有时会根据分配给该策略的金额而改变。
为了解决这个问题,我正在考虑:strategies
完全删除模型/表,并简单地在我的模型/表中添加一个策略列:products
。新列将包含每个产品策略的多维散列。从数据存储的角度来看,此选项提供了极大的灵活性。
我的主要问题是,以这种方式重组我的数据库是否会丢失任何功能?有时我需要根据产品的策略属性来搜索产品,而且我已经读到在多维散列中搜索充其量是困难的。这被认为是不好的做法吗?有没有我没有考虑过的第三种解决方案?