2017-12-27 12 views
-2

24か所の自動車ディーラーグループの日次レポートアプリケーションを作成しました。毎日、各地の管理者は、新車や中古車の販売台数を入力することができます。毎日、週末、および月次の帝国全体の売上レポートがデータから生成されます。毎日のレポートのためのMYSQLデータ構造

私はすべてが正常に動作二つのテーブル

  • dealerships (id, dealership_name)
  • daily entries (dealer_id, entry_date, new, used).

を使用。

ここでは、売上総利益、1日の機会、テストドライブ、販売された保証、販売されたアラームなどのフィールドを含むレポートを展開したいと考えています。そして、彼らは帝国全体の合計だけでなく、各店舗の毎月のレポートを見たいと思っています。

ディーラーごとに別々のテーブルを使用するか、すべてのディーラーに1つのテーブルを使用し続けることができますか。単一のテーブルを使用すると、単一のストアのレポートを生成するたびにデータベース全体を検索する必要があるようです。時間が経つにつれて、テーブルのサイズが大きくなると、最終的にパフォーマンスに影響しませんか?

+1

emあなたは、問題の解決策ではなく、私たちに意見を求めています...これは閉鎖されるべきです –

+0

それは完全にあなたのインデックス、外部キーおよびその他の情報に依存します。テストドライブ、売上総利益などのために毎日のレコードが複数ある場合を除いて、毎日のエントリテーブルにそのレコードを保存し、適切に最適化されていることを確認する必要があります。それ以外の場合は、冗長データを保存しています。 – BenM

答えて

0

各販売代理店にテーブルを使用しないでください。データベースの設計方法ではありません。テーブルは同じエンティティの異なるインスタンスではなく、同じタイプのエンティティからのデータを保持します。ディーラーのテーブルと日報のテーブルがあれば十分です。 daily_reportsテーブルを変更して、新しいフィールドを追加し、データを追加することができます。

テーブルのサイズが大きくなるのを心配しないでください統合されたレポートテーブル(たとえば、montly_reports)を作成し、すべての日次レポートの合計を加算し、しばらくしてからdaily_reportsをプルーニングすることによって、格納されたデータの量を減らすことができます。この方法では、最後のx月の日次レポートと、データ収集の開始以来の統合レポートが作成されます。

関連する問題