Id(自动增量整数)vs字符串员工ID作为主键 - rails应用程序

时间:2010-11-05 05:27:51

标签: ruby-on-rails string primary-key acts-as-tree

我正在编写我的第一个rails应用程序&我想从一开始就养成一些好习惯。有问题的表是保存员工数据,其中一个字段是经理的ID。为了反映层次结构,我正在考虑使用acts_as_tree,所以parent_id将是经理的id字段(对吗?)。如果我们要使用(导入)现有HR应用程序(PeopleSoft)中的数据,则员工ID是一个字符串。员工ID似乎最有意义作为PK(来自PeopleSoft开发人员的观点,我意识到我可能有偏见和/或没有看到所有可能性 - 我也欢迎这方面的建议)

我知道rails背后的哲学之一是“约定优于配置”,所以我想使用默认值 - PK是自动递增整数。在这种情况下,为了维持来自PS的ID的使用/关联,创建“查找表”或其他东西是否有意义?将会有报告/出口回到PS世界......

由于

1 个答案:

答案 0 :(得分:0)

你是正确的,因为Rails中的约定是使用默认的自动递增id。如果您在人员和员工ID之间存在一对一的关系,那么员工ID应该只是您个人模型上的字段(列)。如果您要使用它进行大量查找,请将其设为关键字(但不是主键)。