2017-08-26 5 views
0

MySQLテーブル。多数のカラムを持つmysqlテーブルの最適なアプローチ

phones 
| ID | Name //5-6 columns 
Specifications 
| ID |phone_id| ram | camera | price |network // 50 columns approx 

私の仕様表にはこれまでの50列がありますので、このような状況をどのように処理するかの提案が必要ですか?仕様テーブルを分割するために他のテーブルを作成する必要がありますか?これを続行できますか? 私はより良いスピードとパフォーマンスのためのより良い提案が必要です。以上の50+列の扱い

+2

DBデザインはもっと情報なしでは不可能です。一見すると、1つのテーブルに列名が表示されているように見えます。そのため、座って別のテーブルに適した列を決定する必要があると思います。例えば ​​"ラム"と "価格"は本当に同じテーブルに適していますか?確かにあなたは1つ以上の製品を持っているので、すべてのproduct_idを持つ製品テーブルから(例えば)product_idにマップされた価格の価格表を "_できるよう"にするでしょう。おそらくRAMと他のものと "スペック"テーブル。あなたが与えた情報と確実に言うことは難しい – James

+0

返事をありがとう。 –

+0

名前、価格、画像などの基本的な列を1つの表に配置して仕様表に残しました。このリンクをご覧ください。 http://www.gsmarena.com/samsung_galaxy_note8-8505.php –

答えて

1

は、挿入、更新、選択のような最高の的アプローチ

  1. データ・ベースの操作には時間がかかる可能性はありません。
  2. テーブルで50個以上の列を扱っているときに、データを処理するのが難しくなりました。

したがって、テーブルに列を追加することを続行しないことをお勧めします。 mysql-table-with-40-columnsはあなたの問題を解決するのに役立ちます。

1

おそらく、ID、名前、日付、さらにポスト固有のものを持つ1つのメインテーブルを持つことができます。 次にmeta_value(つまり:125,95または黒または150 x 50 x)というid、main_id(メインテーブルのポストへのリンク)、meta_name(つまり価格または色または寸法)を含むmeta_tableを1つ作成できます8)。 このようにして、IDを使用して1つのメインテーブルにリンクされる1つのテーブルに格納された列のような値をいくつでも作成できます。 これはwordpressが使用しているのと同じ概念です。

そうでなければ、シリアル化されたデータ/配列をメインテーブルに使用することもできます。これは、多くの配列キーとその値を持つ1列のフィールドです。

関連する問題