我有一个存储ID列表的列。如何实现它?我想将它存储为逗号分隔值,它的数据类型为varchar.But我读它不是一个好的过程。如果不获取整个数据,我将无法对其执行查询。我可能需要在ID列表上执行查询。什么是一个很好的编程解决方案?
答案 0 :(得分:2)
您需要一个包含2列的单独表 - ID和FOREIGN_ID。您将为每个原始ID插入一个不同的行,并将原始表的主键指定为新表中FOREIGN_ID的值。这个新表的主键是它的2列的组合。 例如,如果您的原始表是
+-------------+-------+---------+
| Primary_Key | ..... | ID_list |
+-------------+-------+---------+
| 7 | ..... | 3,9,4 |
+-------------+-------+---------+
| 9 | .... | 5,1 |
+-------------+-------+---------+
您的新表格将如下所示
+-------------+-------+ +----+------------+
| Primary_Key | ..... | | ID | Foreign_ID |
+-------------+-------+ +----+------------+
| 7 | ..... | | 3 | 7 |
+-------------+-------+ +----+------------+
| 9 | .... | | 9 | 7 |
+-------------+-------+ +----+------------+
| 4 | 7 |
+----+------------+
| 5 | 9 |
+----+------------+
| 1 | 9 |
+----+------------+