0

Drupalサイトがあり、phpを使用してデータベースからデータを取得しようとしています。私がする必要があるのは、ユーザーのプロファイルに、彼らが最初に会場をレビューした回数を表示することです(Yelpの「最初の」集計とまったく同じです)。私は2つのオプションを検討しており、どちらがより良いアプローチ方法であるかを判断しようとしています。

最初のオプション:会場を初めてレビューするときに、レビュー担当者のユーザーIDの値をデータベースのテーブルに保存します。このテーブルは、各会場をレビューする最初のユーザーのUIDを保存するためのものです。次に、単純なクエリを使用して、ユーザーのUIDがこのテーブルに表示される回数のカウントをユーザーのプロファイルに表示します。

2番目のオプション:データベースに余分なデータを保存せずに、いくつかのより複雑なクエリのセットを使用して、ユーザーのプロファイルにカウントを表示します。これは、次の行に沿って何かを実行する必要があるいくつかのクエリに依存します。

  1. ユーザーが作成した各レビューのIDを見つける
  2. 各レビューに含まれる会場のIDを確認してください
  3. レビューに保存されている会場IDに基づいて、各会場の最初のレビュー
  4. 最初のレビューのために著者のユーザーIDを取得します
  5. これらの作成者UIDのどれが現在のユーザーのUIDと一致するかを確認します

これには、ステップ1でIDの配列を作成し、配列内の各アイテムに対して何らかの方法で各ステップを実行することが含まれると想定しています。また、クエリには3つまたは4つの異なるテーブルが含まれます。

私はSQLクエリの作成に比較的慣れていないので、潜在的に長いクエリのセットを実行する方がよいのか、それとも小さなデータベースヒットを取得して、代わりにはるかに少ないカウントのクエリを使用する方がよいのか疑問に思います。どちらかの利点を比較する方法はありますか、それともリンゴとオレンジを比較するようなものですか?

4

1 に答える 1

1

保存される余分なデータの量はごくわずかです。処理の簡素化は重要です。データは変更されないため(会場を最初にレビューした人は変更されません)、更新の負担はごくわずかです。追加のデータとより単純なクエリを使用してください。

于 2012-12-09T03:32:07.333 に答える