模型之间的CodeIgniter依赖关系,不使用任何ORM或DataMapper系统

时间:2012-01-30 16:20:19

标签: codeigniter dependencies codeigniter-datamapper

我正在使用CodeIgniter编写一个CRUD系统,通过调用从一个模型到另一个模型的方法,在模型之间实现一些“一对多”的依赖关系(不使用任何ORM或DataMapper系统)。

例如:在“多文档用户”重新定位时,删除用户时, User_Model 直接调用 Document_Model 上的 delete()方法,删除与其关联的所有文档。

我确信有一种更好的方式来实现“一对多”的模型关联(没有ORM等),并且会欣赏一些指导。

由于

阿龙。

1 个答案:

答案 0 :(得分:0)

当然!您可以使用InnoDB引擎。这个引擎具有功能上的外键,所以你可以这样做,例如(非常基本的)

CREATE TABLE IF NOT EXISTS `documents` (
  `did` bigint(11) NOT NULL AUTO_INCREMENT,
  `uid` bigint(11) NOT NULL,
  `data` varchar(255) NOT NULL,
  PRIMARY KEY (`did`),
  KEY `uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `user` (
  `uid` bigint(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(25) NOT NULL,
  `password` varchar(25) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ALTER TABLE `documents`
ADD CONSTRAINT `documents_cstr_1` FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON DELETE NO ACTION ON UPDATE CASCADE;
相关问题