我正在使用 CodeIgniter 编写一个 CRUD 系统,通过从一个模型调用方法到另一个模型来实现模型之间的一些“一对多”依赖关系(不使用任何 ORM 或 DataMapper 系统)。
例如:在“每个用户有很多文档”的实现中,当删除一个用户时,User_Model直接调用Document_Model上的delete()方法,删除与之关联的所有文档。
我确信有更好的方法来实现“一对多”模型关联(没有 ORM 等),并希望得到一些指导。
谢谢
阿隆。
我正在使用 CodeIgniter 编写一个 CRUD 系统,通过从一个模型调用方法到另一个模型来实现模型之间的一些“一对多”依赖关系(不使用任何 ORM 或 DataMapper 系统)。
例如:在“每个用户有很多文档”的实现中,当删除一个用户时,User_Model直接调用Document_Model上的delete()方法,删除与之关联的所有文档。
我确信有更好的方法来实现“一对多”模型关联(没有 ORM 等),并希望得到一些指导。
谢谢
阿隆。
当然!您可以使用 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;