草庐IT

Embeds_many

全部标签

php - Laravel Eloquent : How to select not attached records in many to many relationship?

我在用户和书籍之间建立了多对多关系。如何选择所有不属于特定用户的书籍?简单但丑陋的方法是加载所有书籍,加载所有附属于用户的书籍并比较集合。但必须有一种优雅的方式,我就是想不通。可以使用查询生成器和一些连接来完成,但是如何使用Eloquent来实现呢? 最佳答案 您可以为此使用whereDoesntHave():$userId=1;$books=Book::whereDoesntHave('users',function($q)use($userId){$q->where('user_id',$userId);})->get();此方

MySql "Many to One"表设计

我是数据库设计的新手,在查找有关如何定义“多对一”关系的信息时遇到了一些麻烦。我可以找到关于“一对多”和“多对多”的各种信息,但没有关于“多对一”的信息。我的挂断是如何存储数据。我有一个名为“类别”的表,然后我有另一个名为“库存”的表,每个“库存”项目可以属于多个“类别”。如何在单个“库存”行中存储多个“类别”?我是否应该有一个中间表来存储“类别”ID和相应的“库存”ID?或者添加类似JSON字符串的东西,在“库存”行中具有“类别”ID是执行此操作的正确方法吗?或者有没有办法在“库存”行中存储“类别”ID数组?感谢allot的帮助! 最佳答案

php - Eloquent many-to-many-to-many - 如何轻松加载远距离关系

我有3个表;用户、组和权限在模型中,我将关系设置为belongsToMany在用户模型中:publicfunctiongroups(){return$this->belongsToMany('Group');}在组模型中:publicfunctionusers(){return$this->belongsToMany('User');}publicfunctionpermissions(){return$this->belongsToMany('Permission');}在权限模型中:publicfunctiongroups(){return$this->belongsToMany(

php - 什么会导致 "too many database connections"

我的Wordpress网站收到“建立数据库连接错误”消息。我的主机告诉我这是因为我的“用户”有太多同时打开的数据库连接。这导致了建立额外连接的错误,从而导致了按摩。这已通过终止死锁的数据库连接得到纠正。有许多连接将数据复制到临时表,但死锁是由等待一次更新的大量查找引起的。有人可以向我解释这可能是如何发生的,以及如何避免这种情况吗?(p.s:WP安装有2000多个帖子) 最佳答案 我看到对WP和数据库速度有很大帮助的一件事是清理您的帖子和页面修订数据库。WP保留每个编辑修订的完整副本,如果有2000个帖子,您的数据库可能会非常庞大​​

mysql - 在 Django 1.4.20 中不断获取 'Too many connections'

我目前在webfaction中有一个使用MySQL运行的应用程序。该数据库是私有(private)数据库,每隔12小时左右,我就会间歇性地收到“连接过多”错误。所以我以root身份登录到mysql以检查事件连接数mysql>showstatuslike'%onn%';+--------------------------------+-------+|Variable_name|Value|+--------------------------------+-------+|Aborted_connects|4||Com_enable_governor_reconn|0||Com_en

php - MySQL(i) "Too many connections"怎么办?

我正在编写一个hughMySQLi/PHP应用程序,我的数据库遇到问题,似乎在运行几个小时后打开的连接(250)太多。我在我的网络中使用了一个非常快速的外部数据库服务器。我每秒处理大约1000个问题,但服务器似乎并没有给我留下深刻印象(负载接近于0)。在我的应用程序中,MySQLi链接被数据库类的析构函数关闭(这似乎工作正常)。我正在使用准备好的语句,还有几个运行着无限while循环的守护进程和其中的一些查询(循环被usleep()延迟以防止过度使用,我必须注意mysqli_connect()仅在启动守护程序时调用)。但似乎我从来没有用stmt->close()关闭我准备好的语句。在我

mysql - Rails Resque 工作人员因 mysql "Too many connections"而失败

我们最近将我们的(ruby)作业排队系统从DelayedJob切换到了Resque。虽然我们的延迟已经下降,并且我们已经消除了数据库瓶颈,但我们现在看到了一个新问题;我们的一名或多名工作人员似乎在数据库连接退出时保持打开状态。当我们查看进程列表时,有数百个连接处于“sleep”状态。他们最终在90秒后超时。我们一直在节流我们的工作人员以防止客户端连接耗尽,但我们真正需要找到的out是我们的哪个(或多个)作业在使用mysql2ruby​​客户端断开连接时不礼貌。有什么想法可以(1)找到罪魁祸首或(2)检测我们的代码,以便我们可以确保在作业终止之前我们确实断开连接了吗?rails4.0.x

sql - 通过 named_scope 返回对象数组 -- has_many...belongs_to 关联; UNION ALL 查询

我正在寻找一个答案,它将通过(最好)一个named_scope或通过User模型上的一个类方法返回一个用户对象数组,该类方法执行一些操作。所以事不宜迟...我有两个表:users和fights。用户有很多场比赛(has_many:fights,:foreign_key=>'challenger_idorchallenge_id')战斗属于用户(belongs_to:challenger,:class_name=>'User'...belongs_to:challengee,:class_name=>'User')Fight有以下几列值得关注:challenger_id(user_idf

php - Doctrine - Query One-To-Many, Unidirectional with Join Table association from inverse side

我的目标是:创建通用关联,其中第一个实体(例如类别)可以多次用于其他对象(例如帖子、文章)示例Post有类别,Article也有类别,但Article和Post是完全不同的实体。(两者无法同时连接)映射示例:发布categories=new\Doctrine\Common\Collections\ArrayCollection();}//...}文章categories=new\Doctrine\Common\Collections\ArrayCollection();}//...}类别如您所见,这是一对多、单向的连接表关联。现在,我可以查询单个Post类别和Article类别,但Ca

php - Yii 通过 many_many 关系查找模型

我正在使用Yii并有3个表:用户、设备和users_devices表(user_id、device_id)来定义它们之间的MANY_MANY关系。我正在寻找的是通过ActiveRecord从属于特定用户(users.id)的ID(devices.id)查找设备的最简单方法。场景是RESTAPI正在查询设备,但出于安全原因,我想验证该设备是否归用户所有。想法是这样的:$device=Devices::model()->findByPk($deviceId)->having(array('user_id'=>$userId));在此先感谢您的帮助,我已经对此进行了一段时间的研究,但找不到一