1

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

例如:在“每个用户有很多文档”的实现中,当删除一个用户时,User_Model直接调用Document_Model上的delete()方法,删除与之关联的所有文档。

我确信有更好的方法来实现“一对多”模型关联(没有 ORM 等),并希望得到一些指导。

谢谢

阿隆。

4

1 回答 1

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;
于 2012-01-31T21:36:01.933 回答