【问题标题】:CodeIgniter dependencies between models, without using any ORM or DataMapper systems模型之间的 CodeIgniter 依赖关系,无需使用任何 ORM 或 DataMapper 系统
【发布时间】:2012-01-30 16:20:19
【问题描述】:
我正在使用 CodeIgniter 编写一个 CRUD 系统,通过从一个模型调用方法到另一个模型来实现模型之间的一些“一对多”依赖关系(不使用任何 ORM 或 DataMapper 系统)。
例如:在“每个 User 有许多 Documents”现实中,删除 User 时,User_Model 直接调用 Document_Model 上的 delete() 方法,删除与之关联的所有文档。
我确信有更好的方法来实现“一对多”模型关联(没有 ORM 等),并且希望得到一些指导。
谢谢
阿隆。
【问题讨论】:
标签:
codeigniter
dependencies
codeigniter-datamapper
【解决方案1】:
当然!您可以使用 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;