【发布时间】:2011-10-20 05:30:01
【问题描述】:
我有一个旧的 SQL 模式,看起来像这样:
CREATE TABLE `User` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`userType` varchar(255) DEFAULT NULL,
`seqNo` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8;
CREATE TABLE `Employee` (
`userType` varchar(255) DEFAULT NULL,
`id` bigint(20) NOT NULL,
`employeeNumber` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `FKB65C8D4DB07F537D` (`id`),
CONSTRAINT `FKB65C8D4DB07F537D` FOREIGN KEY (`id`) REFERENCES `User` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在此设计中,员工是域模型中的用户。即员工的“id”字段是引用 User.id 的外键。
我将如何编码这种与 Rails 3.0 模型和迁移的关系? 例如,如果我跑了
rails g scaffold User userType:string seqNo:integer
它会给我一个 Rails 数据库迁移,它会生成一个非常相似的模式,以及一个可以访问该表的模型。但是,我不确定如何获取 Employee.id 作为引用 User.id 的外键的 Employee 表,以及获取可以访问这两个表的 Employee 模型。
我怎样才能做到这一点?
【问题讨论】:
标签: ruby-on-rails activerecord