2

私はこれを行うための最良の方法は何だろうと思っています:

  1. 人がレビューを送信します (名前、電子メール、Web ホスト、ホストされているドメイン、ランキング データ [5 つの数値要素] など)

  2. PHP はそのレビューを「SubmittedReviews」テーブルに挿入します

  3. その後、送信されたレビューをバックエンドで監視し、必要なレビューを送信します

4 . PHP は、その情報を「LiveReviews」と呼ばれる別のテーブル (「SubmittedReviews」と同じテーブル構造を持つ) に挿入します。

(または、PHP でホストごとにテーブルを作成し、そのホストのレビューを内部に作成する方がよい場合があります。これは、多くのホストが存在するため、別のテーブルを作成して、"トップ" のランキング データを事前に計算するためです。 hosts」テーブル)

したがって、PHP でレビューをライブで送信するように ([ホストごとに] 新しいテーブルを作成するか、「LiveReviews」テーブルにのみ)、ランキング データを別のテーブルに送信し、各ホストのすべてのランキング データを合計します。すぐに利用できるので、どのホストが最高にランク付けされているかがわかります。

それとも、どのホストが最高にランキングされているか知りたい場合、PHP を使用してその場で LiveReviews ランキング データを計算する必要がありますか? フロント ページがこのデータを頻繁にロードすることを考えると、毎回計算するのは適切ではないようです。事前に計算しておけばよかった。

したがって、この「ランキング データ」テーブルがある場合、ホストごとにすべてのレビューを含むテーブルが必要なようです。それ以外の場合は、大きなテーブル (LiveReviews) を 1 つだけ持つ方がよいようです。

これが理にかなっていることを願っています!

最善の方法は何ですか?私はMySQLにかなり慣れていません。

4

1 に答える 1

1

あなたが達成しようとしていることを正確に理解していないことを認めなければなりません。ユーザーは正確に何をレビューする必要がありますか?

ただし、2 つのアドバイスがあります。別のテーブルに配置して整理しないでください。リレーショナル データベースの世界では異端です。そして、あなたのクエリは不必要に複雑になります。また、PHP ではなく DB で計算を行うことを検討してください。

データベースのモデリングを学ぶことは良い考えです。エンティティ関係図は難しいものではありませんが、非常に便利です。

幸運を。

于 2012-12-09T22:38:25.707 に答える