2011-08-05 3 views
1

私は約3000行と40列のエクセルで大きなデータを持っています。私はcsvにExcelを変換し、SQLの6つのテーブルに "load data local infile"を使用してデータを6つのテーブルにダンプしました 問題は40カラムのうち1つのカラム(属性)のみがユニークで、他のカラムはすべてヌルかユニークではありません。今のところ私はすべてのテーブルに1つの主キーしか使用していません。しかし、私はそれが将来的には効率的になるとは思っていません...誰もこれを行う代わりの方法を提案してください。そこだけ1論理候補キーであり、すべての列は、そのキーに直接関係する、それはすべての必要がある場合SQL - 固有の属性が1つしかありません。複数のテーブルにプライマリキーを指定する必要がありますか?

おかげで、 アレックスは

答えて

0

あなたは1の6つのテーブル代わ​​りにそれを作った理由について再考する必要があります1つのテーブルにある。

database normalizationで検索して、データベース設計をよりよく理解してください。

+0

提案していただきありがとうございますが、約40列からなるデータを分割したいと考えていました。私はそれらの類似点に基づいてテーブルをグループ化したいと思います...これを達成する他の方法はありますか、それとも単一のテーブルにあるものだけですか? – Matt

+0

私は言ったように、私は強くあなたの特定のデータセットを扱う方法を決定するためにデータベースの正規化に関する研究を行うことを強くお勧めします –

0

まず第一に、これは多くのデータのように思えます。そのサウンドからも、フィールドの数と固有の属性の数を考慮すると、おそらく多くの冗長性があります。私はあなたが最初に必要としないものを取り出し、できるだけ多くの重複したエントリーを排除しようとすることをお勧めします。それは良い見た目を与えるだけでなく、あなたは同じ情報になる可能性がインスタントメッセージングのためのものと同様、電子メールフィールドのようなものを持っている場合。その場合は、メールフィールドを持つだけで組み合わせることができます。

これが完了したら、データベース内のPKとして必要なものを編集して、各テーブルのPRIMARYを読み取る必要があります。これは、オーバーヘッドのためにデータベースに多くのスペースを節約します。

+0

3000行はほとんどデータがありません –

+0

ありがとう、冗長はたくさんありませんが、 。私はまだ問題が続くと思うし、カラムをマージしても、それらはヌル値をたくさん持っています....単一のテーブルに入れる方が良いですか? – Matt

+0

はい、以下の表が優れています。以下に示唆するように、正規化を見てください。それは遠くに行くだろう。 – Paolo

関連する問題