2012-04-05 15 views
0

この問題にどう対処するのかと思います。動的列を持つSQL Serverテーブル?

我々は アップロードExcelドキュメントを読み込むプロセスによって移入し、その後 ユーザーのプロファイルに列とその行のデータをダンプします私達のデータベースにあるプロファイルテーブル(このようなすべての間で共通の唯一のものを持っていますスプレッドシートはメールアドレスです)。

したがって、特定のユーザーのプロファイルがどのように表示されるかは予測できません。 プロファイルテーブルを作成するにはどうすればよいですか?

答えて

1

申し訳ありませんが、私は別の答えを作成する必要がありますが、コメントは文句を言わない私はアスキースケッチ

---------- 
| user | 
---------- 
| id pk| 
| name | 
| ..... | 
---------- 

---------------- 
| preference | 
---------------- 
| user_id fk | <-- reference user.id 
| header  | 
| value  | 
---------------- 
を作成してみましょう

csv_row = 1,churk,height,11,weight,500lb,width,22,... OR csv_row = 1,churk,height=11,wieght=500lb,width=22......

これはユーザーテーブルの1行をもたらす、user.id = 1、user.name = Churk 少なくとも3行sが優先されます。もしDBを照会するとき、{[1、高さ、11]、[1、重量、500lb]、[1、幅、22]}

そこで、必要なのは

SELECT * FROM user JOIN preference on preference.user_id = user.id WHERE user.name = 'Churk'; 
+0

ありがとうチャック!それは私には完璧な意味があります。病気はそれを行ってください... –

0

このデータは後でどのようにクエリされますか?私は練習が嫌いですが、これはcsvデータを列に格納する必要があるケースかもしれません。

更新:
これはEntity Attribute Valueスキーマの良いフィットかもしれません。私はEAVのファンではありませんが、少なくとも列のcsvデータよりも悪いことはありません。

+0

おかげジョエルあります。プロファイルは、眼鏡や民族性などを使用して、プロファイルの属性のグローバル検索入力ボックスを使用して検索されます。 CSVデータを単一の列に格納することに慣れていない...固有の属性に基づいて個人を検索または分類する能力が失われているように思える。 –

+0

データはタグのように聞こえるかもしれません。各ユーザーにuser_idがある場合は、スプレッドシートのデータを読み込んで、関連するuser_idに対して各情報を格納することができます。 –

+0

その場合は、[Entity Attribute Value](http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model)のスキーマですか? –

1

プログラミング言語を使用してこれらのデータを処理し、マッピングを盲目的に処理していない場合は、それはかなりシンプルにすべきです。

IDを持つUser_tableと、名前などの修正情報があります。その後

あなたはuser_idは外部キーを持つプロファイルテーブル、およびキーペア値、ヘッダ/値を持っている

+0

こんにちはチャック、はい、それは私が今設定しているものです。私が理解していないのは、プロファイルテーブルにダンプする際に、Excelスプレッドシートの予測不可能な列の種類をどのように考慮するかということです。私はこれがあなたが言及するキー/値のペア(ヘッダー/値)と関係があると推測していますか?ビットを明確にしたり、ASCIIスケッチを提供したり、リンク先を教えてもらえますか?再度、感謝します。 –

関連する問題