FleaPHP数据关联

$belongsTo

定义从属关联

1、外键放置在主表中; 
2、保存时不会自动更新关联表的记录; 
3、删除时也不会更新关联表的记录。

示例: 
多个文章都属于某一个栏目。

格式一:

  class Articles
   {
         var $belongsTo = array(
             array(
                 'tableClass'  => 'Columns',
                 'foreignKey'  => 'column_id',
                 'mappingName' => 'column'
             ),
         );
  }

 

在上面的格式中,foreignKey 表示在当前表中用什么字段存储对关联表的主键引用。 
mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。 
如果不提供 mappingName 参数,则假定使用 tableClass。

格式二:

class Articles
{
    var $belongsTo = 'Columns';
}

 
格式二是一种简化写法。foreignKey 字段名将和关联表的主键字段名相同。

============================

$hasMany

定义一对多关联

1、外键保存在关联表中; 
2、保存时自动更新关联表的记录; 
3、删除主表记录时自动删除关联记录。

示例: 
每个用户(user)有多张订单 order。

格式一:

class Users
{
     var $hasMany = array(
         array(
              'tableClass'  => 'Orders',
             'foreignKey'  => 'user_id',
              'mappingName' => 'orders',
          ),
     );
 }

 

在一对多关系中,当前表并不包含对关联表的主键引用。 
而是在关联表中保存对当前表的主键引用。
在上面的格式中,foreignKey 指示在关联表中用什么字段存储对当前表的主键引用。 
mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。 
如果不提供 mappingName 参数,则假定使用 tableClass。

格式二:

class Users
{
      var $hasMany = 'Orders';
}

 

简化写法中,foreignKey 字段名将和当前表的主键字段名相同。

============================

$hasOne

定义一对一关联
1、外键放置在关联表中;
2、保存时如果有关联对象,则自动创建或更新关联表的记录; 
3、删除主表记录时自动删除关联记录。

示例: 
当前表为 users,用于存储用户账户。而每个用户账户有且只有一个对应的个人信息(profile)记录。

格式一:

class Users
{
     var $hasOne = array(
          array(
              'tableClass'  => 'Profiles',
              'foreignKey'  => 'profile_id',
              'mappingName' => 'profile',
          ),
      );
 }
 

在上面的格式中,foreignKey 表示在关联表中用什么字段存储对主表的主键引用。  mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。  如果不提供 mappingName 参数,则假定使用 tableClass。

格式二:

class Users
{
      var $hasOne = 'Profiles';
}

 

格式二是一种简化写法。foreignKey 字段名将和主表的主键字段名名相同。

============================


$manyToMany
      
定义多对多关联

1、外键保存在中间表里面;
2、保存时自动更新中间表; 
3、删除主表记录时自动删除中间表的相关记录。

示例: 
每个成员(member)可以拥有多个角色(role),而每个角色也可以指定给多个成员。

格式一:

class Members
{
     var $manyToMany = array(
          array(
             'tableClass'      => 'Roles',
             'joinTable'       => 'member_roles',
              'foreignKey'      => 'member_id',
             'assocforeignKey' => 'role_id',
              'mappingName'     => 'roles',
          ),
     );
}


在多对多关系中,当前表并不包含对关联表的主键引用。 
而是在一个中间表里面保存对当前表和关联表的主键引用。
在上面的格式中,joinTable 表示中间表的名字。foreignKey 和 
assocforeignKey 分别表示在中间表里面用什么字段存储对主表和 
关联表主键字段的引用。

mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。 
如果不提供 mappingName 参数,则假定使用 tableClass。

格式二:

class Members
{
      var $manyToMany = 'Roles';
}

 

简化写法中,foreignKey 字段名将和当前表的主键字段名相同。
assocforeignKey字段名称则和关联数据表的主键字段名相同。
而中间表名称将用FLEA_Db_TableDataGateway::getMidtableName() 方法计算。

内容概要:本文围绕六自由度机械臂的人工神经网络(ANN)设计展开,重点研究了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程,并通过Matlab代码实现相关算法。文章结合理论推导与仿真实践,利用人工神经网络对复杂的非线性关系进行建模与逼近,提升机械臂运动控制的精度与效率。同时涵盖了路径规划中的RRT算法与B样条优化方法,形成从运动学到动力学再到轨迹优化的完整技术链条。; 适合人群:具备一定机器人学、自动控制理论基础,熟悉Matlab编程,从事智能控制、机器人控制、运动学六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)建模等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握机械臂正/逆运动学的数学建模与ANN求解方法;②理解拉格朗日-欧拉法在动力学建模中的应用;③实现基于神经网络的动力学补偿与高精度轨迹跟踪控制;④结合RRT与B样条完成平滑路径规划与优化。; 阅读建议:建议读者结合Matlab代码动手实践,先从运动学建模入手,逐步深入动力学分析与神经网络训练,注重理论推导与仿真实验的结合,以充分理解机械臂控制系统的设计流程与优化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值