バージョン選択

フォーラム

メニュー

オンライン状況

49 人のユーザが現在オンラインです。 (41 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 49
もっと...

サイト内検索

質問 > フロント機能 > 人気順

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
promob
投稿日時: 2007/8/15 17:35
対応状況: −−−
新米
登録日: 2007/7/24
居住地:
投稿: 3
人気順
現在、商品リスト画面にて、人気順で並べ替え機能を実装していますが、viewの作成で困っています。

vw_products_allclass人気順のカラムを追加できれば、いいと思います。まず、dtb_order_detailで、注文された回数でcountし、それをviewに組み込めればと考えています。

select count(dtb_order_detail.product_id) from dtb_order_detail where dtb_order_detail.product_id=dtb_products.product_id
group by product_id

しかし、これでvw_products_allclassの作成ができなくて困っています。どなたかご教授お願いいたします。

EC-CUBEバージョン 1.3.4
PHPバージョン PHP 5.2.0
DBバージョン PostgreSQL 7.4.9
drednote
投稿日時: 2007/8/15 21:01
対応状況: −−−
常連
登録日: 2007/7/30
居住地: 滋賀
投稿: 41
Re: 人気順
T1とT2をRIGHT JOINさせる前に、T2とそのselectで出てきた
カウントをLEFT JOIN(T2が左)するってのはどうでしょう?
私は全く違う方法で実装してしまったので、上記は実験してもいない
適当な文言ですが……
(Postgresだと出来ないかもしれませんね。MySQL5だとわりとその辺
自由が利くんですが)

個人的な感想ですが、その都度カウントするのでは速度的な
ボトルネックになり得るので、販売する度にカウントされるテーブルを
1つ別途設けた方が良いんじゃないかと思うんですが如何でしょうか?
nanasess
投稿日時: 2007/8/16 1:33
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: 人気順
大河内です.

引用:

drednoteさんは書きました:

個人的な感想ですが、その都度カウントするのでは速度的な
ボトルネックになり得るので、販売する度にカウントされるテーブルを
1つ別途設けた方が良いんじゃないかと思うんですが如何でしょうか?


同感です.
dtb_products テーブルに, 注文数のカラムを追加しても良いかもしれません.
explain analyze してみるとわかると思いますが, view に組み込むのは酷だと思います.
PostgreSQL は, 8.x になってかなり改善されましたが, 7.4.x の count は非常に遅いです. . .
ゲスト
投稿日時: 2007/8/16 16:03
対応状況: −−−
Re: 人気順
やはりdtb_productsにカラムを持たせるのがシンプルでいいのかもしれません。商品TBLなので、売上数をもたせるのはちょっと意味合いが違うかと思いますが、この方法でやってみようと思います。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,324名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.