我试图描述这样的想法:一组软件服务共享相似的依赖关系,但并非所有服务都在给定依赖关系的相同版本上。
请考虑以下模型:
class Service < ApplicationRecord
has_many :service_dependencies
has_many :dependencies, through: :service_dependencies
end
class ServiceDependency < ApplicationRecord
belongs_to :service
belongs_to :dependency
end
class Dependency < ApplicationRecord
has_many :service_dependencies
has_many :services, through: :service_dependencies
has_many :versions, foreign_key: 'dependency_id', class_name: 'DependencyVersion'
end
class DependencyVersion < ApplicationRecord
belongs_to :dependency
end
service
可以有多个dependencies
,而给定的依赖项可以有许多versions
,任何服务一次都使用单个版本的依赖项。
如何表达这种关系,以便可以确定服务当前正在使用的依赖项版本?
我认为我可以将当前版本存储在service_dependencies
表上,但这似乎是错误的解决方案。
谢谢
答案 0 :(得分:1)
我想我会添加类似的内容
class Configuration < AR
belongs_to :service
belongs_to :dependency
belongs_to :dependency_version
end
是的,您将复制信息,但这似乎很有意义。可能性的体现。