2012-03-05 12 views
0

カテゴリ内のゲームの順番に関するデータを保持するテーブルを作成する必要があります。私はGame_ID、Category_ID、Orderを3つのフィールドとして持つことを計画していましたが、Orderフィールドについてどうやって行くのか分かりません。カテゴリ内のアイテムの順番

私は、Orderフィールドの最も低い数字のゲームをトップに表示すると思っていましたが、再注文が必要なときに乱雑になる場合があります。私が50のゲームを持っていて、周りを少しシャッフルすることに決めたら、そのカテゴリのすべての行でSQL Updateを実行して注文を更新する必要があります。

これが最善のアプローチですか、それとも簡略化できますか?

答えて

1

パフォーマンスが問題ではない(正直言って、通常そうではありません)場合、通常はセット内のすべてのアイテムを更新します。

perfを最適化する場合は、アプリケーション層で余分なロジックを使用してデータベースの更新を最小限に抑えることができます。注文フィールドには、最初に10刻みで(または意味を問わず)入力することができます。次に、アイテムを並べ替えると、アプリケーションレイヤで、希望の場所に配置する順序の値を見つけようとします。可能でない場合は、すべてのオーダー値を更新してください。

非整数のフィールドを使用するとこれがさらに成功するかもしれないと思いますが、それが実現するたびに整数フィールドが実装されています。

+0

注文フィールドに整数フィールドを使用する理由はありません。また、すべてのRDBMSの予約語が間違っているように見える場合は、 '(CATEGORY_ID、GAME_ORDER)'に一意索引を付けて列名を付けてください。 –

関連する問題