Sql 如何在有很多关系的情况下进行搜索?

Sql 如何在有很多关系的情况下进行搜索?,sql,ruby-on-rails,database,Sql,Ruby On Rails,Database,例如,教授有很多约会。我们将有一张教授桌和一张预约桌。在后一种情况下,每个条目都有一个外键,指向Professor表中的一个条目,这是Rails中典型的多关系 我的问题是,如果我想查询某位教授的所有任命,该怎么办?因为没有教授对预约的反向指示,这意味着我必须查找整个预约表,并且只检查这一位教授的预约表。我知道这种方法有效,但效率似乎很差。那么,有谁能给我一个更好的解决方案,在一个有很多关系的情况下进行反向搜索(我不知道你怎么称呼它,所以我在这里编一些术语)。给出以下代码: class Profe

例如,教授有很多约会。我们将有一张教授桌和一张预约桌。在后一种情况下,每个条目都有一个外键,指向Professor表中的一个条目,这是Rails中典型的多关系

我的问题是,如果我想查询某位教授的所有任命,该怎么办?因为没有教授对预约的反向指示,这意味着我必须查找整个预约表,并且只检查这一位教授的预约表。我知道这种方法有效,但效率似乎很差。那么,有谁能给我一个更好的解决方案,在一个有很多关系的情况下进行反向搜索(我不知道你怎么称呼它,所以我在这里编一些术语)。

给出以下代码:

class Professor < ActiveRecord::Base
  has_many :appointments
end

class Appointment < ActiveRecord::Base
  belongs_to :professor
end

这将仅检索属于特定教授的预约。此代码不会将整个约会表加载到内存中。它正在构造一个只选择所需数据子集的查询。

不要忘记使用实例变量查看视图中的约会:)
professor = Professor.find(1)
appointments = professor.appointments