0

我正在开发一个 Rails 应用程序,它将显示食物的营养成分。我只想显示用户想要看到的营养素。

所以,我有模型:

  • 食物:
  • 养分:
  • FoodNutrient:指定每种食物中每种营养素的数量
  • UserNutrient:指定用户希望看到哪些营养素 我将拥有数千种食物和 100 多种营养素

我看到几个来源提供了有关如何处理这种复杂性的提示(现在我正在考虑尝试使用 Arel)。但是,这些来源通常不会提供示例,也不会提示我们应该如何处理视图。我找到了这个,但希望对这个问题有更多的意见,特别是关于所涉及的大数据。

那么,在我的索引视图中处理这个问题的最佳方法是什么?

我的另一个疑问是,使用 FoodNutrient 模型是否会更好地提高性能,或者最好在 Food 模型中包含列,其中每个新列都代表一种营养素。我认为 FoodNutrient 赌注更好,因为用户会选择他会看到哪些营养素,但我不确定。
我将不胜感激任何可能对我有帮助的示例、解释、建议、反馈或参考。

已编辑

由于有人不理解我的问题的一些评论,我将尝试用其他语言来总结它。

我想从前 3 个模型中获取数据,最后一个(UserNutrient)我将使用它来减少向用户显示的行数。

正如我想展示的那样:

Food Name  |  Nutrient 1  |  Nutrient 2  |  Nutrient 3
_______________________________________________________
Food 1        10             40             7.3
Food 2        9              4.4            9.1

我知道我会在 Food 上有一个循环,上面显示的每一行都会迭代一个。而且我还必须在第一个循环内迭代 UserNutrient 以显示每种食物的营养量(此数据在 UserNutrient 上)。主要问题是如何执行这些循环,特别是考虑到表将包含大量数据。这个好像有点像,虽然不是很懂。

我的另一个疑问是结构是否是最好的。FoodNutrient 和 Food 表可以合并。

4

1 回答 1

0

我已经研究过这个问题,现在我决定将 FoodNutrient 和 Food 表/模型合并为 Food。我相信有很多行的 FoodNutrient 会更糟,因为它会有一个巨大的索引。比有很多列的食物表更糟糕。

这篇文章帮助我决定:

http://rails-bestpractices.com/posts/58-select-specific-fields-for-performance

如果您有什么要补充的,请也回答问题或添加评论。

于 2013-09-30T16:20:05.013 回答