在sql中保存字符串列表

时间:2016-02-08 16:06:03

标签: sql database-design

在我们的系统中,我们有一个API调用,它返回一个站列表。除了其他东西之外,每个站都有一个名称和相应的代码。 例如,响应如下:

[
   {
    name: "New York C",
    code: "0001:074"
   },
   {
    name: "Oslo C",
    code: "0002:078"
   },
   ...
]

此列表非常大,包含大约3500个站点。

我们需要做的是创建一个可以配置为最多可以选择50个工作站的窗口小部件。这些站是上述呼叫返回的站的子集。 基本上,我们甚至不需要保存名称,只需代码即可。

问题是我们如何在DB中保存站点(代码)的子集?

我知道1NF,我已经阅读了这个how-to-store-a-list-in-a-column-of-a-database-table

事情是没有必要导入所有3500个站并放入数据库,因为我们可以访问小部件的调用。但是我们仍然需要保存配置的数据子集。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的“列表”是JSON格式,您可以将其导出到任何数据库(我们假设它是MySQL):

因此,您的数据库中将有一个名为“Stations”的表,您的表将有两列:名称和代码。

要将Json数据导出到MySQL,您需要先使用以下内容将其导出为CSV,http://www.danmandle.com/blog/json-to-csv-conversion-utility/https://github.com/danmandle/JSON2CSV

然后使用以下命令将CSV文件导出到MySQL: 然后:

LOAD DATA INFILE 'filepath/your_file.csv' INTO TABLE Stations;

有很多方法可以实现相同的结果,例如,您可以使用PHP来执行此操作:http://www.kodingmadesimple.com/2014/12/how-to-insert-json-data-into-mysql-php.html

或使用ETL(如Talend,SSIS ......)。