表中的前N个元素 - 数据库设计

时间:2013-08-21 08:53:13

标签: ruby-on-rails database-design

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

我正在考虑三种选择:

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

但由于我对这个问题不是很熟悉,所以我很想听听其他人会做些什么。

任何指针都会非常感激。

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

1 个答案:

答案 0 :(得分:1)

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