如何在SQL字段中处理CSV类型数据

时间:2017-08-23 21:13:47

标签: sql sql-server azure

(在Azure SQL Server中)我想构建我的数据库以处理INSERT和SELECT等,其中字段是(对我来说)逗号分隔值。

更具体地说,我不知道最佳做法:

SELECT * FROM products WHERE Currency = 

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

将CSV货币字段存储在产品表中对于SELECT来说肯定是无效的,但由于有数百种货币,因此既不是“中间表”(即在每个可能子集具有id的产品和货币之间)。提前致谢

1 个答案:

答案 0 :(得分:0)

在SQL中,通常会使用“中间表”对其进行建模。它通常被称为多对多关系。

结帐this answer about a similar question

  

当且仅当表A中的一条记录与表B中的一条或多条记录相关时,关系就是多对多。

     

要建立多对多关系,请创建一个名为“Relation”的第三个表,该表将包含表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