2017-08-23 77 views
0

(在Azure SQL Server中)我想構建我的數據庫以處理INSERT和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} 

存儲在產品表中的貨幣字段爲CSV肯定是供選用效率不高,但因爲有成百上千的貨幣也不是一個「中間表」(即產品和貨幣之間的每個可能的子集都有一個id)。在此先感謝

回答

0

在SQL中,這通常會使用「中間表」進行建模。它通常被稱爲多對多關係。

退房this answer about a similar question

的關係是多對多,如果從表A只有一個記錄在表B中與一個或多個記錄,反之亦然。

要建立一個多對多的關係,創建一個名爲「關係」的第三表,這將有表A和B.

兩者的主鍵在你的情況,你將有表

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_ID,其中Currency_ID = [1/2/1或2]」。 –

相關問題