我有一个模型“Task”,它将 HABTM 许多“TaskTargets”。
然而,当涉及到 TaskTargets 时,我正在编写抽象的基本 TaskTarget 类(与 Rails 中的一样多)。TaskTarget 将由任何可以成为任务目标的任何不同概念化的子类。比如说,软件子系统、客户站点、浴室等……
这里的类设计相当简单,但我遇到的问题是我将如何将它们联系在一起,以及我将如何让 Rails 操纵这些关系。
我的第一个想法是我将拥有一个包含基本公共字段(名称、描述...)的 TaskTarget 表。然后,它还将与特定于实现类包装的数据类型的表具有多态关系。这意味着实现 TaskTarget 的类的一个实例的数据将在两个表中找到。
第二种方法是在 Task 和 TaskTarget 的子类之间创建多态 HABTM 关系,我认为我可以将表名 TaskTarget 用于连接表。
我怀疑选项#2是最强大的,但也许我遗漏了一些东西。感谢您的帮助,当然,我真的只是要求确保我把它做好,一次!