Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails模型会有太多的关联吗?_Ruby On Rails_Associations - Fatal编程技术网

Ruby on rails Rails模型会有太多的关联吗?

Ruby on rails Rails模型会有太多的关联吗?,ruby-on-rails,associations,Ruby On Rails,Associations,如果这个问题有点愚蠢,我很抱歉,但是如果一个应用程序有一个或多个关联模型,会有任何负面影响吗?例如,对于需要用户模型的复杂应用程序(如社交网站),该模型可能有15个以上的关联(有许多:帖子、消息、照片、朋友等等)。如果一个模型与其他模型关联严重,这是否会对应用程序的性能产生任何负面影响?如果是这样的话,那么将问题最小化的最佳方法是什么呢?好吧,我能提供的第一条建议是快速制作原型,看看它是如何运行的 对于关联的限制,ActiveRecord默认使用惰性关系。因此,在您请求之前,加载用户不会自动加载

如果这个问题有点愚蠢,我很抱歉,但是如果一个应用程序有一个或多个关联模型,会有任何负面影响吗?例如,对于需要用户模型的复杂应用程序(如社交网站),该模型可能有15个以上的关联(
有许多:帖子、消息、照片、朋友等等)。如果一个模型与其他模型关联严重,这是否会对应用程序的性能产生任何负面影响?如果是这样的话,那么将问题最小化的最佳方法是什么呢?

好吧,我能提供的第一条建议是快速制作原型,看看它是如何运行的

对于关联的限制,ActiveRecord默认使用惰性关系。因此,在您请求之前,加载用户不会自动加载帖子、消息、照片、朋友等。这通常对你很有好处,因为你可能不需要他们的所有照片都出现在信息页面上

下面是一个链接,其中包含一些关于优化ActiveRecord的提示,以获取更深入的信息:
Rails中模型之间的关联实际上只是在幕后操纵id值。这些都是相当高性能的操作,特别是如果您花时间建立了外键关系(如果您的数据库支持的话)。ActiveRecord也不会加载任何内容,除非您要求加载,因此通常只有在您处理这些关系时,才会将它们转换为SQL server的联接

在创建示例中的帖子、消息、照片或朋友时,ActiveRecord将自动为您设置
user\u id
列。这就是一个
有许多关联所涉及的全部内容

过早优化是万恶之源。在您建立了评测瓶颈之前,不要担心它