我有一个传统的SQL模式看起来是这样的:Rails模型:传统模式:表继承
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模型。
我该如何做到这一点?
出色答卷一个较新的版本!特别是第三个。他发现了一大堆我不会想到的问题,但是需要,特别是在使用set_sequence_name时。 –