Php 科哈纳orm遗传
我想在创建子项时自动创建父项记录 例如Php 科哈纳orm遗传,php,orm,kohana,Php,Orm,Kohana,我想在创建子项时自动创建父项记录 例如 CREATE TABLE IF NOT EXISTS `front_end_users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `userid` int(11) unsigned NOT NULL, `tel` varchar(20) NOT NULL, `addr1` varchar(255) NOT NULL, `addr2` varchar(255) NOT NULL
CREATE TABLE IF NOT EXISTS `front_end_users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`userid` int(11) unsigned NOT NULL,
`tel` varchar(20) NOT NULL,
`addr1` varchar(255) NOT NULL,
`addr2` varchar(255) NOT NULL,
`city` int(11) NOT NULL,
`zip` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_userid` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(127) NOT NULL,
`username` varchar(32) NOT NULL DEFAULT '',
`password` char(64) NOT NULL,
`logins` int(10) unsigned NOT NULL DEFAULT '0',
`last_login` int(10) unsigned DEFAULT NULL,
`reset_token` char(64) NOT NULL DEFAULT '',
`status` varchar(20) NOT NULL DEFAULT '',
`last_failed_login` datetime NOT NULL,
`failed_login_count` int(11) NOT NULL DEFAULT '0',
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_username` (`username`),
UNIQUE KEY `uniq_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
CREATE TABLE IF NOT EXISTS `promouter` (
`userid` int(10) unsigned NOT NULL,
`balance` float NOT NULL,
`commision` float NOT NULL,
`mountly_fee` float NOT NULL,
`verified` tinyint(1) NOT NULL DEFAULT '0',
KEY `promouter_ibfk_1` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `front_end_users`
ADD CONSTRAINT `front_end_users_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `users` (`id`) ON DELETE CASCADE;
ALTER TABLE `promouter`
ADD CONSTRAINT `promouter_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `front_end_users` (`userid`) ON DELETE CASCADE;
users->front_end_users->promouter
如果我创建了带有登录名、密码和地址的promoter
,我想在用户(登录名、密码)
、前端用户(addr1、addr2、userid)
和promoter(userid)
中自动插入适当的字段
我有几个角色。因此,我无法将have_one添加到用户模型中。但是我添加了一个前端用户和Promoter模型。如果您想在子创建时触发父创建,那么我认为您应该在数据库级别使用触发器 编辑: 使用以下方案创建表:
Rules(ID, TableName, ColumnName, Event, Action, Parameters)
您将有一套规则,然后您将能够对此进行一般性的实现。在您的业务层中,您将调用您的规则解析器(也必须由您实现),这样您就可以在业务层中创建任何逻辑触发器。我希望这会有所帮助。意味着存储一个类,使字段与其他表保持关联。而不仅仅是一个空白的表来触发。