(在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的产品和货币之间)。提前致谢
答案 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