【发布时间】:2012-07-03 18:37:30
【问题描述】:
我刚刚完成了Agile Web Development with Rails一书,第四版 (http://pragprog.com/book/rails4/agile-web-development-with-rails),需要一些帮助来理解如何在模型之间创建父子关系。我做了一些谷歌搜索,并在 StackOverflow 上闲逛,大致了解了单表继承和类表继承。
我有一堆关于档案收藏中不同项目的元数据。大部分元数据对于所有对象都是相同的,例如,入藏号、标题、描述、版权等。除了通用元数据外,还有一些元数据仅适用于某些类型的项目,例如照片需要保留跟踪项目是彩色还是黑白;录音需要跟踪格式(CD、DAT、盒式磁带等)和持续时间;文本材料需要跟踪页数;等等
Class hierarchy
Item
|
+-----------+------------+
| | |
Photo SoundRecording Text
由于我将拥有数千条记录,因此我已经排除了单表继承效率太低的可能性。我理解这里介绍的类表继承的想法:http://martinfowler.com/eaaCatalog/classTableInheritance.html,但我对如何在新的 Ruby on Rails 项目中实际实现这一点感到困惑。我是否将类表继承实现为多态关联 (http://guides.rubyonrails.org/association_basics.html#polymorphic-associations) 还是我走错了路?
谢谢。
【问题讨论】:
标签: ruby-on-rails class-table-inheritance