2016-08-29 13 views
0

私は、製品がいっぱいのMySQLデータベースを持っています、各製品にはカテゴリがあります。 私は店のオーナーが、商品がサイトに表示される順序を変更することができるようにしたいと考えています。表示注文列に基づく製品の注文

私の最初の考えは、製品注文の列を持つことですが、別々の注文を持つために各カテゴリの製品を必要とし、すべての製品が1つのテーブルポジション1の椅子とポジション1のテーブルも、これは間違いなく達成可能ですが、大きな問題があります。もし私が椅子2のポジションをポジション1に変更したいのであれば、他のすべての製品カラムも更新する必要があります。これは、注文を変更するたびに100sのクエリを実行する必要があるため、計算コストがかかります。

これを行う簡単な方法が必要です。私はMySQLとPHPを使用しています。 何か助けていただければ幸いです。

ありがとうございました。

+0

カテゴリと商品の間に多対多の関係があるようです。なぜ中間テーブルに注文を入れないのですか –

+0

これは意味がありますが、注文を変更したときにカテゴリーxの各商品の注文を更新する必要があるというこの問題をまだ止めませんか? @ ShadyAtef – Ben

+0

いいえ間違いなくそれはありません。 –

答えて

1

所有者はアイテムを+1または-1(または+10、+ 1など)で与えて、リストをバブルアップまたはバブルアップすることができます。これは完全なものではなく、アイテムの正確な位置をより厳密に(特にリストの下に)位置付けることになりますが、必要な計算量が減少します。 (あなたは、所有者が商品の優先度を直接見て編集して、正確なポジショニングを向上させることもできます)

+0

これを行うには計算上安価で簡単な実装方法がないようですが、私はちょうどここで尋ねられた同様の質問を見つけました、そして本当の答えは見つかりませんでした。ご回答有難うございます。 – Ben

+0

私はあなたが絶対的な識別子(これは高価ですが正確です)、または相対的な識別子(安いがあいまいです)をしなければならないと思います。本当の答えが見つかったら、私に連絡してください。 – Iain

+0

Iain、ありがとう! – Ben