zoukankan      html  css  js  c++  java
  • thinkphp一对多HAS_MANY

    关联关系
    通常我们所说的关联关系包括下面三种:
    一对一关联 :ONE_TO_ONE,包括HAS_ONE 和 BELONGS_TO
    一对多关联 :ONE_TO_MANY,包括HAS_MANY 和 BELONGS_TO
    多对多关联 :MANY_TO_MANY
    关联关系必然有一个参照表,例如:
    有一个员工档案管理系统项目,这个项目要包括下面的一些数据表:基本信息表、员工档案表、部门
    表、项目组表、银行卡表(用来记录员工的银行卡资料)。
    这些数据表之间存在一定的关联关系,我们以员工基本信息表为参照来分析和其他表之间的关联:
    每个员工必然有对应的员工档案资料,所以属于HAS_ONE关联;
    每个员工必须属于某个部门,所以属于BELONGS_TO关联;
    每个员工可以有多个银行卡,但是每张银行卡只可能属于一个员工,因此属于HAS_MANY关联;
    每个员工可以同时在多个项目组,每个项目组同时有多个员工,因此属于MANY_TO_MANY关联;
    分析清楚数据表之前的关联关系后,我们才可以进行关联定义和关联操作。

    对于HAS_MANY举一个小例子如下:

    某个商品下有无数个用户评论:

    GoodsModel.class.php

    <?php
    namespace HomeModel;
    use ThinkModelRelationModel;
    class GoodsModel extends RelationModel{
        protected $_link = array(
            'comment'=>self::HAS_MANY //这是一个常量,声明是一对多关系,并且Relation已经内部集成了Model功能了
        );
    }
     ?>

    在调用商品详情的时候显示这个商品的用户评论,只需要:

    $goods_comment = $goodsModel->relationGet('comment');

    就可以取得所有用户的评论,就是这么简单!

  • 相关阅读:
    python3笔记二十二:正则表达式之函数
    python3笔记二十一:时间操作datetime和calendar
    python3笔记二十:时间操作time
    python3笔记十七:python文件读写
    Spring常用注解
    Pytorch实现卷积神经网络CNN
    Keras实现autoencoder
    Keras实现LSTM
    TensorFlow实现CNN
    Recurrent Neural Networks vs LSTM
  • 原文地址:https://www.cnblogs.com/xiong63/p/6123262.html
Copyright © 2011-2022 走看看