يمكن إزالة Distinct بسبب الفهرس الفريد

في ملف theme.rb، يوجد
ChildTheme.where(parent_theme_id: theme_id).distinct.pluck(:child_theme_id)، ويمكن إزالة دالة distinct نظرًا للفهرس الفريد الذي أُضيف في ملف discourse/db/migrate/20170313192741_add_themes.rb: add_index :child_themes, [:parent_theme_id, :child_theme_id], unique: true.

وهذا يعني أنه بالنسبة لموضوعين فرعيين: ChildTheme1(id1, child_theme_id1, parent_them_id) و ChildTheme2(id2, child_theme_id2, parent_them_id)، إذا تساوى child_theme_id1 مع child_theme_id2، فإن id1 يساوي id2، وإلا فإن [:parent_theme_id, :child_theme_id] لن يكون فريدًا. ونتيجة لذلك، ستُرجع عبارة ChildTheme.where(parent_theme_id: theme_id).pluck(:child_theme_id) قيم child_theme_id فريدة، لذا لا داعي لاستدعاء دالة distinct. يمكننا إزالتها لتحسين الأداء.

حسناً، قد ترغب في تقديم طلب دمج (pull request) مع هذا التغيير.

ملاحظة: من حيث الأداء، لن يحدث هذا فرقًا، لكنه يحسن الوضوح قليلاً، لذا أنا أيضًا أدعم طلب سحب (PR) هنا.

تم الإرسال Update theme.rb by jwjwyoung · Pull Request #8472 · discourse/discourse · GitHub