gpt4 book ai didi

mysql - 如何在学说中插入非常引用

转载 作者:可可西里 更新时间:2023-11-01 07:39:07 27 4
gpt4 key购买 nike

我有 3 个实体:UserPagePost

Post 实体中:

class Post
{
/**
* @ORM\ManyToOne(targetEntity="Page")
*/
private $page;

/**
* @var ArrayCollection $subscribers Specify users that see this post.
*
* @ORM\ManyToMany(targetEntity="User", inversedBy="wallPosts")
*/
private $subscribers;
}

Page 实体中:

class Page
{
/**
* @ORM\ManyToMany(targetEntity="User")
*/
private $members;
}

发布帖子时,我希望所有属于 Page members 的用户都设置为 subsribers帖子

$post->setSubscribers($post->getPage()->getMembers())

注意:Page可以有几千个用户,什么是最好的性能?我应该使用 native 查询、数据库触发器还是过程?

最佳答案

你可以循环进行。每次迭代有 50 个用户订阅新帖子。不要忘记清理学说内部存储。主要思想是

$page = $post->getPage();
for ($i = 1;; ++$i) {
$members = $page->getPagindatedMembers($i);
if (empty($members)) {
break;
}
foreach ($members as $member) {
$post->addSubscriber($member);
}
$em->flush();
$em->clear(Member::class);
}

关于mysql - 如何在学说中插入非常引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33408792/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com