thinkphp关联模型 多对多 插入 怎么使用?????
程序员文章站
2022-05-10 20:59:43
...
$u = D('user');
$u->name = 'xiak';
$u->password = 'qqqqqq';
$u->shop = array(
'gg' => '1',
);
$u->relation(true)->add($data);
user(id, name)
shop(id, name)
user_shop(user_id,shop_id)
class UserModel extends RelationModel {
protected $_link = array(
'shop' => array(
'mapping_type' => self::MANY_TO_MANY,
'relation_table' => '__USER_SHOP__',
)
}
怎么没有效果啊?
sql调试是这样的:
[user] SHOW COLUMNS FROM `tb_user` (executeTime: 0.009001s )
[user] INSERT INTO `tb_user` (`name`,`password`) VALUES ('xiak','qqqqqq') (executeTime: 0.117007s )
[shop] SHOW COLUMNS FROM `tb_shop` (executeTime: 0.013001s )
[shop] INSERT INTO tb_user_shop (user_id,shop_id) SELECT a.id,b.id FROM tb_user AS a ,tb_shop AS b where a.id =45 AND b.id IN (1) (executeTime: 0.001000s )
手册上说 当MANY_TO_MANY时,不建议使用关联插入。是什么意思啊?
回复内容:
$u = D('user');
$u->name = 'xiak';
$u->password = 'qqqqqq';
$u->shop = array(
'gg' => '1',
);
$u->relation(true)->add($data);
user(id, name)
shop(id, name)
user_shop(user_id,shop_id)
class UserModel extends RelationModel {
protected $_link = array(
'shop' => array(
'mapping_type' => self::MANY_TO_MANY,
'relation_table' => '__USER_SHOP__',
)
}
怎么没有效果啊?
sql调试是这样的:
[user] SHOW COLUMNS FROM `tb_user` (executeTime: 0.009001s )
[user] INSERT INTO `tb_user` (`name`,`password`) VALUES ('xiak','qqqqqq') (executeTime: 0.117007s )
[shop] SHOW COLUMNS FROM `tb_shop` (executeTime: 0.013001s )
[shop] INSERT INTO tb_user_shop (user_id,shop_id) SELECT a.id,b.id FROM tb_user AS a ,tb_shop AS b where a.id =45 AND b.id IN (1) (executeTime: 0.001000s )
手册上说 当MANY_TO_MANY时,不建议使用关联插入。是什么意思啊?
难道就没有人跟我一样,觉得分拆SQL再加事务才是最好的方案吗,关联的SQL其它人看起来是不是很受罪呢
上一篇: 如何看待大公司将PHP作为前端语言?
下一篇: PHP实现的猴王算法(猴子选大王)
推荐阅读
-
php的db类库Eloquent单独使用系列(9)- 多对多关联 - 表关联自身
-
Laravle eloquent 多对多模型关联实例详解
-
图文详解laravel多对多关联模型
-
ps怎么使用动作是对图形进行多色填充?
-
springboot使用mybatis一对多的关联查询问题记录
-
请问下多对多关联关系,中间表插入数据?还有设置中间表的好处
-
thinkphp关联模型 多对多 插入 怎么使用?????
-
thinkphp关联模型 多对多 插入 怎么使用?????
-
Laravel的多对多关系模型如何在分布式的情况下使用,比如用户表在另一台服务器?
-
请问下多对多关联关系,中间表插入数据?还有设置中间表的好处