プロジェクト

全般

プロフィール

Vote #80529

未完了

Distinct can be removed

Admin Redmine さんが約4年前に追加.

ステータス:
New
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
-
開始日:
2022/05/09
期日:
進捗率:

0%

予定工数:
category_id:
0
version_id:
0
issue_org_id:
32558
author_id:
306584
assigned_to_id:
0
comments:
0
status_id:
1
tracker_id:
1
plus1:
0
affected_version:
closed_on:
affected_version_id:
ステータス-->[New]

説明

In apps/redmine/app/models/project.rb, there is User.active.joins(:members).where("#{Member.table_name}.project_id = ?", id).distinct. which will be translated to SELECT DISTINCT users.* FROM users INNER JOIN members ON members.user_id = users.id WHERE users.status = 1 AND (members.project_id = ?);

Actually DISTINCT is not necessary due to the uniqueness constraint in member.rb: validate: user_id, uniqueness: {:scope => project_id}, which indicates that for member1(member_id1, user_id, project_id) , and member2(member_id2, user_id, project_id), there is member_id1 = member_id2. Or else the uniqueness constraint will be violated. As a result the join result will not return duplicate users.

表示するデータがありません

他の形式にエクスポート: Atom PDF

いいね!0