5種類の注文を処理するデータベースを設計しようとしていますが、すべてのタイプまたは注文のフィールドを持つ1つの大きな注文テーブルがありますが、大きかった。
適切に大きなSQLテーブルを分割する方法
私が気にしていたのは、各注文に一意のID、注文を行った人物のID、注文明細が格納されるorder_typeテーブルのIDです。
ため
ID
USER_ID(USER.idへの外部キー)
ORDER_DATE
order_type2_id(ORDER_TYPE1.idへの外部キー)
order_type3_id(ORDER_TYPE2.idへの外部キー)
order_type4_id( ORDER_TYPE3.idへの外部キー)
order_type5__id(ORDER_TYPE4.idへの外部キー)
order_type6_id(ORDER_TYPE5.idへの外部キー)
order_type1
ID
order_type2
ID
order_type3
ID
order_type4
ID
order_type5
ID
それだけで一つの大きなテーブル内のすべてのデータとにIを使用したりしていますされていないヌルフィールドを格納する方が良いだろう別のテーブルを用意して、何らかの方法で結合することによって、正しいトラックを作成できます。私の解決策が間違っていると感じるので、正しい方向のポイントは素晴らしいでしょう。
あなたは間違ったトラックに、おそらくだ「TABLE1」、「表2」、または「COLUMN1」、「COLUMN2」を書いている任意の時間。各注文がID以上のものでない場合、注文タイプの列挙項目の仕事のように聞こえる。これらの注文をどのように区別しますか?各注文にどのような他のフィールドを関連付けるのですか?どのフィールドは特定の種類の注文にのみ適用されますか? – Schwern
これらの名前はちょうど質問のためのもので、各テーブルは注文に固有の約20〜50の列を持っています。私は注文と呼ばれる1つのテーブルを持っていなければならない場合、5つの異なるタイプの注文があり、そこにはすべての単一のタイプの注文のための列が1つのテーブルの200の列に近いでしょう。私は注文タイプと呼ばれる巨大なテーブルを持っていて、それをすべて保存しましたが、作業しやすくするために、各注文タイプをサブテーブルに分ける方が良いかもしれないと思っていました。 – chris1211
どのような情報が各注文タイプに固有のもので、何が共通しているかということを考えると、私たちはその質問に答えるのに役立ちます。また、各注文タイプが表すもの。 – Schwern