我有两个型号 - Score
& Weight
。
这些模型中的每一个都有大约5个属性。
我需要能够为weighted_score
创建User
,这基本上是Score.attribute_A
* Weight.attribute_A
,Score.attribute_B
* {{的产物1}}等等。
我最好创建第3个模型 - 比如说Weight.attribute_B
,我用Weighted_Score
将每个属性的产品值存储在一行中,然后在需要特定{{}}时查询该表。 1}}(例如user_id
)或者我最好每次都在进行计算吗?
我从效率的角度提出要求。
感谢。
答案 0 :(得分:1)
我认为答案非常依赖于情境。创建第三个表可能是一个好主意,如果计算非常昂贵,您不希望陷入系统的其余部分,并且您可以立即响应用户并显示计算将在未来。在这种情况下,您可以将处理卸载到后台工作程序中,并异步创建第3个模型的实例。此外,您应该de-normalize the table,以便您可以直接访问它,而无需查找权重/分数记录。
其他一些想法:
答案 1 :(得分:0)
除非需要存储计算得分(假设它已更改并且您希望保留对其的更改),我不会看到添加复杂性以将其存储在单独的表中的任何好处。