我使用的是Rails3。
主模型是Product
:product has_many :images
:product has_many :related_products (self-referential)
:product has_many :descriptions
:product has_many :specifications
:product has_many :upc_codes
:product has_many :prices你明白了吧。我正在尝试确定是否可以将此硬塞到属性模型中,在属性模型中,属性是价格、规格、描述等。但我遇到的问题是,虽然其中一些子模型只有一个属性,但其他子模型有很多属性。例如,Image可能只有path属性,但Description可以有文本值和语言代码,Price可以有price和currency组件。
Properties模型提供了很大的灵活性,但是如果我要处理包含多个属性的子属性,它就会失效。
这两种情况我都需要,这是真正的答案吗?始终与产品一对一的属性的属性方式,以及每个单独的模型(价格、描述等)对于那些具有多个属性的子模型?
发布于 2010-10-07 22:00:07
如果属性具有一组非常相似的方法、用例和行为,那么将它们合并到单个属性模型中将是有意义的。
如果它们各自以不同的方式工作,需要不同的方法和行为,那么您目前所描述的就是正确的。
如果情况介于两者之间,您可以使用Single Table Inheritance来避免代码重复,并保持设计简单。
https://stackoverflow.com/questions/3867010
复制相似问题