2012-01-10 24 views
0

私は4つのフィールドで構成されるDBを持っています。私のアプリケーションはそのデータベースからデータを取得します。私は1つのプライマリキー(ID)を持っています。私はIDにも依存したい、新しいテーブルに編成される他のデータを提供します。何が良いですか?新しいテーブルを作成して再度検索するか、IDのためにすでに行が見つかったという事実を考慮して、テーブルになる新しい要素を作成します。たとえば、infoという名前の新しい要素を作成して、配列のようにすることができますか?11行を必要とし、情報を2列にします。私のSQLコードは、これまでのところ、このです:SQLに新しい列を挿入

私は確認する必要がありますどのような変更
CREATE TABLE people (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 
    name VARCHAR(100) NOT NULL , 
    sex BOOL NOT NULL DEFAULT '1', 
    birthyear INT NOT NULL 
) 

?このテーブルはすでに作成されています。

+0

SQL Server? MySQL?他に何か?また、あなたが求めていることを伝えるのは非常に難しいです。少し質問を明確にすることはできますか? – JohnFx

+0

私はphpmyadmin環境で作業しています。しかし、あなたが私にコードとしてSQLコードを与えるなら、私はそれをコードとして実行します。ごめんなさい、何か違う言葉があれば、私はSQLとこの環境で全く新しいものです。 – ghostrider

+1

実行しているデータベースは私の質問でした。また、私は今あなたの質問を4回読んだことがありますが、まだ何を求めているのか分かりません。 – JohnFx

答えて

1

既存のテーブルの各行に11x2のデータセットを関連付ける必要がある場合は、別のテーブルを作成することをお勧めします。

1つのフィールドに22項目のデータを埋め込まないようにしてください。本当に悪い考えです。しかし、それは常に同じ(22項目)なら


、あなただけの22個のフィールドを追加することができます。どのようにデータが使用、検索、結合されるかによって異なります。


これは、RDBMSとそのインターフェースに依存します。新しいテーブル全体を作成し、古いデータをコピーする方が簡単かもしれません。または、あなたが持っている環境によって列を追加することができます。

1

追加のデータを格納する別の新しいテーブルを作成するのが最善であると思います。これは、元のテーブルにIDごとに複数のレコードがあるため、主にです。

新しいテーブルのレコードには、それらをpeopleテーブルにリンクする外部キーのpeopleIDフィールドがあります。

0

私はあなたがテーブルを埋め込むことを示唆していると信じています。これは実際にMySQLが行うものではありません。代わりに、次のことを行う必要があります。あなたの例のような表を作成してください。次に、ID(人物表のIDと同じ)とその他のさまざまな列の列を持つ新しい表を作成します。次に、内部結合を行い、2つを一緒に結合することができます。さらに、異なる行の異なる表を参照する場合は、「タイプ」の列を追加することができます。

また、Mongoのような「No-SQL」ソリューションを使用することもできます。これにより、物事を動的に追加することができます。しかし、リレーショナルデータベースをうまく把握するまで、これを行うことはお勧めしません。

関連する問題