我有一个Staff
表和一个Store
表,但每个商店最多只有一个经理,每个员工最多可以管理一个商店。
避免4NF中的multivalued dependency。我想创建一个StoreManager
表,而不是另一个StoreStaffs
表,它存储有关员工及其工作的商店的信息。
尽管如此,Store
和Staff
通过StoreManager
表格具有一对一关系。
虽然Rails有has_and_belongs_to_many
关联,但就我而言,它不适用,但需要has_and_belongs_to_one
。
在Rails的Active Record中是否存在类似于has_and_belongs_to_one
的可能关系?
答案 0 :(得分:1)
您可以使用has_one
和has_one :through
。
以下是一些伪代码:
class Store < ActiveRecord::Base
has_one :store_manager
has_one :staff, through: :store_manager
end
class StoreManager < ActiveRecord::Base
belongs_to :store
end
class Staff < ActiveRecord::Base
end
有关详细信息,请参阅ActiveRecord::Associations#has_one。