プロジェクト

全般

プロフィール

Bug(バグ) #275

あしあとの表示が正常に動作していない

pnetan  14年以上前に追加. 12年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2009-11-26
期日:
進捗率:

100%

3.6 で発生するか:
Yes
[QA]バグ通知済:
はい
3.8 で発生するか:
Unknown (未調査)

説明

http://sns.openpne.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=5128 より転記

お世話になっております。

あしあとの表示についてですが、あしあとのページには

「最新30件までを表示、同一人物・同一日付のアクセスは最新の日時だけが表示されます。」

となっておりますが、現状の表示は以下の様になっているように思います。

①1日につき1件の足跡しか表示されない。

②日付は当日の最新のものが表示される。

③アクセスした人の名前は当日最初にアクセスした人の名前が表示される。
(日付と名前が対応していない)

①の動作は仕様でしょうか?

また、②③について、あしあとの日付と名前を対応付けるには、どのようにすればよろしいでしょうか。

お手数をおかけ致しますが、宜しくお願いいたします。

環境:開発版 OpenPNE 3.1.5 

patch.diff 表示 (555 Bytes) Shogo Kawahara, 2010-03-02 16:50

patch2.diff 表示 (2.18 KB) Shogo Kawahara, 2010-05-24 20:06

opAshiatoPlugin-bug.png 表示 (8.79 KB) Masato Nagasawa, 2011-05-17 20:08


関連するチケット

次のチケットが重複 OpenPNE3 Plugins - Bug(バグ) #247: あしあとの表示が1日に1件しか表示されない Invalid(無効) 2009-11-18
次のチケットが重複 OpenPNE3 Plugins - Bug(バグ) #177: あしあとの表示順がその日一回目にアクセスしたメンバー順になっている Invalid(無効) 2009-02-05

履歴

#1 pnetan  14年以上前に更新

  • 対象バージョン を削除 (OpenPNE 3.1.5)

#2 Kousuke Ebihara14年以上前に更新

  • プロジェクトOpenPNE 3 から OpenPNE3 Plugins に変更

#3 Shogo Kawahara約14年前に更新

この問題を解決できるであろうパッチを作成しました。

#4 Shogo Kawaharaほぼ14年前に更新

さらに追加でパッチを作成しました。

日時が誤っている問題の修正です。

#5 Kousuke Ebihara13年以上前に更新

  • 3.6 で発生するかYes にセット

#6 Kousuke Ebihara13年以上前に更新

ソースコードを軽く見た限りでは、修正されていそうに思いました

#7 Kousuke Ebihara13年以上前に更新

  • 優先度Normal(通常) から High(高め) に変更

#8 Kousuke Ebihara13年以上前に更新

  • プロジェクトOpenPNE3 Plugins から opAshiatoPlugin に変更
  • [QA]バグ通知済いいえ にセット

#9 Kousuke Ebihara13年以上前に更新

  • [QA]バグ通知済いいえ から はい に変更

#10 Masato Nagasawaほぼ13年前に更新

  • ファイル opAshiatoPlugin-bug.png 表示 を追加
  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Masato Nagasawa にセット

#note-3 にてついてはすでに修正されているので適応する必要はないです。

#note-4 は現在の最新版(0.9.1.2)でも修正されておらず、順序が間違って表示されています。
意図的に再現させた際のスクリーンショットを添付しておきます。


修正方針ですが、
添付されているパッチでは、updated_at の名前を変更して対応を行なっていますが、
この場合修正範囲が広くなるため別の対応で行いたいです。
「->orderBy('MAX(updated_at) DESC');」 のように名前を変更せずに
MAX関数を追加する方向で修正するほうが修正範囲が少なく安全ではないかと思われます。
(負荷的な面ではこちらのほうが重い?)

#11 Masato Nagasawaほぼ13年前に更新

  • 対象バージョンv1.1.0 にセット

#12 Masato Nagasawaほぼ13年前に更新

パッチ同様の対応で修正します。

#13 Masato Nagasawaほぼ13年前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

#14 Naoya Tozukaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

「->orderBy('MAX DESC');」 のように名前を変更せずにMAX関数を追加する方向で修正

でも名前を変更した場合と同等の負荷になるようですが、ここでは(今のまま)名前の変更で問題ありません。

他の箇所でも参照する変数であるため、"ua" より説明的な変数名(例:"max_updated_at")への変更が望ましいです。

備考

MySQLのEXPLAIN文で見る限りでは負荷要因の軽減は見られませんでした:

mysql> EXPLAIN SELECT *,MAX(updated_at) as updated_at FROM ashiato WHERE member_id_to = 3 AND r_date IN ('2011-05-19') GROUP BY member_id_from, r_date ORDER BY MAX(updated_at) DESC;
+----+-------------+---------+------+-------------------------------------------------------------------------------------+-------------------------+---------+-------------+------+----------------------------------------------+
| id | select_type | table   | type | possible_keys                                                                       | key                     | key_len | ref         | rows | Extra                                        |
+----+-------------+---------+------+-------------------------------------------------------------------------------------+-------------------------+---------+-------------+------+----------------------------------------------+
|  1 | SIMPLE      | ashiato | ref  | member_id_to_idx,member_id_to_member_id_from_updated_at_idx,member_id_to_r_date_idx | member_id_to_r_date_idx | 9       | const,const |    1 | Using where; Using temporary; Using filesort | 
+----+-------------+---------+------+-------------------------------------------------------------------------------------+-------------------------+---------+-------------+------+----------------------------------------------+
1 row in set (0.06 sec)

mysql> EXPLAIN SELECT *,MAX(updated_at) as max_updated_at FROM ashiato WHERE member_id_to = 3 AND r_date IN ('2011-05-19') GROUP BY member_id_from, r_date ORDER BY max_updated_at DESC;
+----+-------------+---------+------+-------------------------------------------------------------------------------------+-------------------------+---------+-------------+------+----------------------------------------------+
| id | select_type | table   | type | possible_keys                                                                       | key                     | key_len | ref         | rows | Extra                                        |
+----+-------------+---------+------+-------------------------------------------------------------------------------------+-------------------------+---------+-------------+------+----------------------------------------------+
|  1 | SIMPLE      | ashiato | ref  | member_id_to_idx,member_id_to_member_id_from_updated_at_idx,member_id_to_r_date_idx | member_id_to_r_date_idx | 9       | const,const |    1 | Using where; Using temporary; Using filesort | 
+----+-------------+---------+------+-------------------------------------------------------------------------------------+-------------------------+---------+-------------+------+----------------------------------------------+
1 row in set (0.00 sec)

#15 Masato Nagasawaほぼ13年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

#16 Naoya Tozukaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

OKです。修正対応どうもありがとうございます。

#17 isao sano12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テスト完了いたしました。
問題は発見されなかったためFixedいたします。

#18 Shingo Yamada12年以上前に更新

  • 360対象RC1 にセット

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