2017-10-03 17 views
0

私はできる限り明確にしようとします...投稿ごとに複数の部分を含むデータを保存する

1件につき複数の項目を含むデータレコードを保存する必要があります。 1つの事件で、9つの食糧を盗んだ顧客がいます.1バナナ、3つの青いカメ、2つのマーズのバー、4つのオレンジのスライスです。

私は、インシデントのコアの詳細(日付、時刻、インシデントの詳細など)を含むテーブルを持ち、参加者のUIDと識別され、その個人の詳細がそのUIDとともに別のテーブルに格納されています。要件は、各オブジェクトのいくつが盗まれたかを見るためにレポートを実行できることです。

方法は、これは明らかに、すべての複数のオブジェクトの事件のうち、巨大なテーブルの行を取得する可能性を秘めていると私はデータ性能、電気ショック療法に関連してこれらのレコードを格納するための最良の方法です。

インシデントの親レコードIDを参照して複数のレコードとして保存するのか、これを行うより効率的な方法がありますか?

+1

table_stolen_products のようなピボットテーブルをproduct_idフィールドとperson_idフィールドで記述すると、これらのテーブルに参加することで、製品と人物の両方の詳細に簡単にアクセスできます。 – shashi

答えて

2

出発点として、私はこのような何かをするだろうが: enter image description here

Incident_has_FoodItemsはあなたのインシデントテーブルにFoodItemsの任意の数をリンクすることができます。 Incident_has_FoodItemsテーブルに各FoodItemが何回表示されたのかを簡単に数えることができます。

データベースのデータ構造を定義するときは、各項目をテーブルとして分離してリンクしてください。彼らはあなたがさらに掘るしたい場合は、通常のフォーム上に読むことができます

...、インデックスを作成しやすく、簡単にクエリのパフォーマンスが向上を可能にします。

+0

非常にいいです。あなたはそれをどのようにしましたか? – Brian

+1

fabForce DB Designer 4.これはMySQL用の古いソフトウェアですが、うまく機能します。 TYPE =をENGINE =に置き換えるのは、自動生成SQLで行うことだけです。すばやく汚れたDBの設定には十分で、無料です! – Nic3500

+0

@Nicのおかげです。あなたが示唆したようにそれを打破するのがもっと意味がある。そして、私は、最初の検索上の個々のインシデントを要求していたが、その後、関連する項目のそれぞれのグループを見てさらにドリルダウンすることができます。 :-) 非常に高く評価! – cloudseeker

関連する問題