2017-08-23 10 views
0

(Azure SQL Server)フィールドを(カンマ区切りの)値にするINSERTとSELECTなどを処理するデータベースを設計します。 CSVは確かのSELECTのために効率的ではありませんが、通貨の何百ものどちらも存在しないためであるとSQLフィールドでCSV型データを処理する方法

SELECT * FROM products WHERE Currency = 

A.) USD 
b.) USD or CAD 
c.) CAD or EUR 
d.) EUR 
e.) EUR or USD 
f.) {Any} 

は、製品テーブル内の通貨フィールドを保存:

具体的には私がすることがベストプラクティスを知りません(すなわち、各可能なサブセットがIDを有する製品と通貨との間の)「中間テーブル」である。事前に感謝します

答えて

0

SQLでは、これは実際には "中間テーブル"を使用して実際にモデル化されます。これは一般に多対多の関係として知られています。

this answer about a similar questionをチェックアウト:

関係があれば、多くの多くで、表Aの1つのレコードがテーブルBとその逆で1つ以上のレコードに関連している場合にのみ。

あなたがテーブルを持っているでしょう、あなたの場合は、両方のテーブルAとB.

の主キーを持つことになり、「関係」と呼ばれる第3のテーブルを作成し、多くの関係に多くを確立すること

Product_ID Product_Name 
1    Laptop 
2    Keyboard 

Currency_ID Currency_Name 
1    USD 
2    EUR 

Product_ID Currency_ID 
1    1 
1    2 
2    2 
+0

返信いただきありがとうございます。あなたの上記のProduct、Currency&Relationテーブルでは、 「Currency_ID = [1/2/1 OR 2]」の関係からDistinct Product_IDを選択してください。 –

関連する問題