0

次の目的で、データを収集してMySQLに保存しています。

  • 75 変数
  • 55カ国
  • 毎年

このツールを作成して以来、この段階で、変数/国の 1 つのテーブルを作成しました (1 年分のデータを保存します)。

来年(およびその後数年間)、各国ごとに新しいデータセットが入力されます。

したがって、収集されたすべてのデータを確認しているユーザーに返されるデータを制御するには、3 つの変数があります。クエリの一般的な形式は次のとおりです。

  • これらの特定の国、特定の年について、これら特定の変数を表示してください。

(たとえば、2012 年と 2009 年の米国とカナダの平均年齢と体重を表示してください)

私の質問は、このデータを整理するための 2 つのオプションがあるようです。に関し。

私が知る限り、どちらの構造でもこれらのデータベース呼び出しを行うことができますが、より強力/効率的/高速である理由は何ですか?

ご検討いただきありがとうございます。

それが関連する場合、それは PDO / PHP インターフェイスです。

4

1 に答える 1

0

リレーショナル アプローチを使用すると、通常、より多くのテーブルが必要になります。これは、クエリが少し遅くなり (小さなデータベースではおそらく目立たないかもしれませんが)、データベースのサイズが小さくなることを意味します。これにより、情報を適切に更新することがより簡単になり、データの整合性が保証されます。たとえば、Joe の住所が変更された場合、Joe の住所を使用するすべてのレポートで変更されることがわかっています。

1 つのフィールドを複数回繰り返すことができるあまりリンクされていないテーブルを使用すると、異なるテーブルのデータ間に不一致が生じる危険性があります。アクセス方法に応じて情報がグループ化されるため、テーブルを適切に配置すると、アクセス速度が少し速くなるはずです。

たとえば、最初の方法では完全な請求書を作成するためのとテーブルを含むOrdersテーブルが必要ですが、2 番目の方法ではとの両方の情報をテーブルに入力して、請求書に対応する行を見つけてアクセスできるようにします。探している数を指定すると、必要なデータ セット全体が返されます (したがって、データベース サーバーで結合する必要がなくなり、負荷が軽減されます) 。SupplierClientSupplierClientOrdersSupplierClient

編集: より良い回答には、データに関する情報 (サンプルなど) がもう少し必要になると思います。

于 2012-10-25T23:10:42.687 に答える