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)

您将有一套规则,然后您将能够对此进行一般性的实现。在您的业务层中,您将调用您的规则解析器(也必须由您实现),这样您就可以在业务层中创建任何逻辑触发器。我希望这会有所帮助。

意味着存储一个类,使字段与其他表保持关联。而不仅仅是一个空白的表来触发。