多关联查询 - 数据库建模

时间:2014-12-30 03:06:05

标签: ruby-on-rails

我计划使用rails应用程序,允许用户在其个人地址或针对保管库指定的任何其他附加地址(位置)列出一个/多个保险柜。在我继续生成模型之前,我想确保理解三个模型之间需要建立的关联。这里是我手动输入的代码表示,用于描述所需的关联。

class User < ActiveRecord::Base
    has_many :vaults
end

class Vault < ActiveRecord::Base
    belongs_to :user
    has_one :address
end

class Address < ActiveRecord::Base
    belongs_to :user
end

1 个答案:

答案 0 :(得分:0)

您的数据库看起来没问题,下面很少考虑:

class User < ActiveRecord::Base
  has_many :vaults
  has_many :addresses #(optional)if you want to fetch addresses directly
end

class Vault < ActiveRecord::Base
  belongs_to :user
  has_one :address
end

class Address < ActiveRecord::Base
  belongs_to :user #(optional) if you want to fetch user directly
  belongs_to :vault
end

数据库要求:

地址表必须包含user_id(可选)和vault_id。

保险库表必须包含user_id。