我想描述的是一组软件服务有着相似的依赖性但不是所有的服务都是相同版本的一个给定的依赖关系的想法。
请考虑以下型号:
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
表,但感觉就像错误的解决方案。
谢谢
我想我会添加一些像
class Configuration < AR
belongs_to :service
belongs_to :dependency
belongs_to :dependency_version
end
是的,你会被复制信息,但似乎这将是有意义的。可能性的实例。