我正在使用CodeIgniter编写一个CRUD系统,通过调用从一个模型到另一个模型的方法,在模型之间实现一些“一对多”的依赖关系(不使用任何ORM或DataMapper系统)。
例如:在“多文档每用户”重新定位时,删除用户时, User_Model 直接调用 Document_Model 上的 delete()方法,删除与其关联的所有文档。
我确信有一种更好的方式来实现“一对多”的模型关联(没有ORM等),并且会欣赏一些指导。
由于
阿龙。
答案 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;