1

我目前正在 Rails 中开发一个电子商务网站,我需要提供前 10 名产品列表和前 10 名供应商列表。对各种表的 Top N 列表建模的最佳或推荐方法是什么?

我正在考虑三个选项:

  • 将排名位置存储在 Product 和 Supplier 表中,然后检索前 10 个
  • 使用两个表:ProductTop10 和 SupplierTop10,具有 1 到 n 的关联(ProductTop10 has_many Products 和 Product belongs_to ProductTop10)。
  • 使用两个新表:ProductRankingEntry 和 SupplierRankingEntry,具有 1 对 1 的关联,将行数限制为 10(ProductRankingEntry belongs_to Product 和 Product has_one ProductRankingEntry)。

但由于我对这个问题不是很有经验,我很想听听其他人会怎么做。

任何指针将不胜感激。

PS:我希望这是讨论此事的正确渠道。如果没有,请告诉我。

4

1 回答 1

1

第一个选项将是最好的选择。现在的数据库在排序和限制行方面更加智能。它需要最少的努力和资源。一旦应用程序源代码横向扩展,其他两个选项将难以维护。此外,这意味着每个用户的操作更多,这可能会影响开发后期的性能。

于 2013-08-21T08:58:41.877 回答