我是否应该对导入的公共数据表使用rails integer id,该表使用固定长度的字符串作为id?

时间:2014-01-22 19:51:08

标签: ruby-on-rails ruby postgresql csv database-design

我需要使用公共政府数据表,通过csv导入我的rails应用程序中的表(使用postgresql)。所讨论的表使用固定长度的12位数字字符串(通常具有至少一个前导零)作为其主键。我觉得好像我有三个选择:

  1. 导入时添加rails生成的整数主键
  2. 要求rails将字符串解释为整数,并将其用作我的主键。
  3. 强制rails使用字符串作为主键(然后,随后作为其他关联表中的外键)
  4. 我担心做出选择1因为我可能需要至少每年重新导入一次政府数据批发,因为它会更新以保持我的数据库最新。如果添加和删除记录,重新导入后确保rails主键保留正确的记录似乎真的很复杂

    选择2似乎是要走的路,(它会解决重新导入问题),但我不清楚如何去做。它是否像告诉rails将该列导入为整数一样简单?

    选择3似乎可行,但在我在其他地方读到的帖子中,它并不是一个非常“顽固”的方式。

    我欢迎任何建议或解决方案。

    更新

    我最终使用了选择1,这是正确的选择。那是因为我是rails的新手,并且以为我会做一些直接的,批量导入(在后端,直接进入Postgresql)会让我遇到上面描述的问题。但是,我查看了Railscast 369,它解释了如何在应用程序中构建csv导入功能作为最终用户功能。这非常容易,这就是我的所作所为。通过这种方式执行操作,应用程序执行逐行导入,因此可以在该级别内置相应的检查。

0 个答案:

没有答案