【问题标题】: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;
    

    【讨论】:

      猜你喜欢
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 2011-09-22
      • 1970-01-01
      • 2017-10-29
      • 2021-05-08
      • 2014-06-11
      相关资源
      最近更新 更多