草庐IT

activerecord-relation

全部标签

php - 使用 ActiveRecord 和 Yii2 记录实际的 SQL 查询?

我这样做:$students=Student::find()->all();return$this->render('process',array('students'=>$students));然后在View中:foreach($studentsas$student){echo$student->name.', ';echo$student->getQuizActivitiesCount();?>我想查看正在执行的sql查询。一个学生“有很多”测验事件,查询执行得很好,但我需要查看原始SQL。这可能吗? 最佳答案 方法一

php - 使用 ActiveRecord 和 Yii2 记录实际的 SQL 查询?

我这样做:$students=Student::find()->all();return$this->render('process',array('students'=>$students));然后在View中:foreach($studentsas$student){echo$student->name.', ';echo$student->getQuizActivitiesCount();?>我想查看正在执行的sql查询。一个学生“有很多”测验事件,查询执行得很好,但我需要查看原始SQL。这可能吗? 最佳答案 方法一

mysql - Ruby on Rails/ActiveRecord 和表分区

到目前为止,我已经阅读了文档并且能够找到任何可以帮助我的东西。我也阅读了大量的博客文章,但似乎没有直接回答我的问题:是否可以使用ActiveRecord管理InnoDB表中的表分区?我真的更喜欢保持非常干净,并且我试图避免编写外部脚本来尝试自动创建/随着时间的推移删除分区。 最佳答案 是的,你可以!但我不认为有什么gem可以为你做到这一点。为了执行分区管理,您需要自己做艰苦的工作,并通过以下方式直接通过连接发送您需要在DB上运行的命令ActiveRecord::Base.connection.execute("ALTERTABLEy

mysql - Ruby on Rails/ActiveRecord 和表分区

到目前为止,我已经阅读了文档并且能够找到任何可以帮助我的东西。我也阅读了大量的博客文章,但似乎没有直接回答我的问题:是否可以使用ActiveRecord管理InnoDB表中的表分区?我真的更喜欢保持非常干净,并且我试图避免编写外部脚本来尝试自动创建/随着时间的推移删除分区。 最佳答案 是的,你可以!但我不认为有什么gem可以为你做到这一点。为了执行分区管理,您需要自己做艰苦的工作,并通过以下方式直接通过连接发送您需要在DB上运行的命令ActiveRecord::Base.connection.execute("ALTERTABLEy

mysql - 使 ActiveRecord/Rails 使用实际的 mysql TIMESTAMP 列

Rails的:timestamp列类型所在;它实际上只是:datetime的别名。我正在使用mysql,我想使用实际的unix-timestampTIMESTAMP列。a)除了使用SQL创建列之外,是否有设置此设置的好方法?b)ActiveRecord是否会正确处理它(例如,必要时转换为Time,接受unix时间戳Integer作为输入等)?我应该处理哪些陷阱,在哪里处理?为什么:速度。这是针对一个非常活跃的表,该表聚合了已经使用unix时间戳的外部数据源。转换为日期时间(或者甚至首先转换为db字符串,经过2个gsub)耗尽了大部分导入时间。否则我可能只是在做一个非常便宜的Intege

mysql - 使 ActiveRecord/Rails 使用实际的 mysql TIMESTAMP 列

Rails的:timestamp列类型所在;它实际上只是:datetime的别名。我正在使用mysql,我想使用实际的unix-timestampTIMESTAMP列。a)除了使用SQL创建列之外,是否有设置此设置的好方法?b)ActiveRecord是否会正确处理它(例如,必要时转换为Time,接受unix时间戳Integer作为输入等)?我应该处理哪些陷阱,在哪里处理?为什么:速度。这是针对一个非常活跃的表,该表聚合了已经使用unix时间戳的外部数据源。转换为日期时间(或者甚至首先转换为db字符串,经过2个gsub)耗尽了大部分导入时间。否则我可能只是在做一个非常便宜的Intege

mysql - 存储 1 :1 user relationships in relational database 的最佳方式

存储用户关系的最佳方式是什么,例如友谊,必须是双向的(你是我的friend,因此我是你的friend)。数据库,例如MYSQL?我可以想到两种方法:每当一个用户与另一个用户交friend时,我都会在数据库中添加两行,A行由发起用户的用户ID和下一列中接受用户的UID组成。B行正好相反。您只需添加一行,UID(启动用户),然后是UID(接受用户);然后在试图确定用户1是否是用户2的friend时搜索两列。肯定有更好的东西吗? 最佳答案 我会有一个friend的链接表,或者其他什么,两列都是PK的,并且都是用户表的FK。两列都是UID,

mysql - 存储 1 :1 user relationships in relational database 的最佳方式

存储用户关系的最佳方式是什么,例如友谊,必须是双向的(你是我的friend,因此我是你的friend)。数据库,例如MYSQL?我可以想到两种方法:每当一个用户与另一个用户交friend时,我都会在数据库中添加两行,A行由发起用户的用户ID和下一列中接受用户的UID组成。B行正好相反。您只需添加一行,UID(启动用户),然后是UID(接受用户);然后在试图确定用户1是否是用户2的friend时搜索两列。肯定有更好的东西吗? 最佳答案 我会有一个friend的链接表,或者其他什么,两列都是PK的,并且都是用户表的FK。两列都是UID,

php - 为什么 Yii2 的 ActiveRecord 使用大量单个 SELECT 而不是 JOIN?

根据文档,我正在(希望)完全按照它应该使用的方式使用Yii2的ActiveRecord实现。问题在表之间具有简单关系的非常简单的设置中,获取10个结果很快,获取100个结果很慢。1000是不可能的。该数据库非常小,索引完美。问题绝对是Yii2请求数据的方式,而不是数据库本身。我正在使用标准的ActiveDataProvider,例如:$provider=newActiveDataProvider(['query'=>Post::find(),'pagination'=>false//togetallrecords]);我怀疑使用Yii2工具栏进行调试显示,对于一个简单的请求,应该只从表

php - 为什么 Yii2 的 ActiveRecord 使用大量单个 SELECT 而不是 JOIN?

根据文档,我正在(希望)完全按照它应该使用的方式使用Yii2的ActiveRecord实现。问题在表之间具有简单关系的非常简单的设置中,获取10个结果很快,获取100个结果很慢。1000是不可能的。该数据库非常小,索引完美。问题绝对是Yii2请求数据的方式,而不是数据库本身。我正在使用标准的ActiveDataProvider,例如:$provider=newActiveDataProvider(['query'=>Post::find(),'pagination'=>false//togetallrecords]);我怀疑使用Yii2工具栏进行调试显示,对于一个简单的请求,应该只从表