问题标签 [polymorphic-associations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 如何用多态建模 has_many?
我遇到了一种我不太确定如何建模的情况。
编辑:下面的代码现在代表一个可行的解决方案。不过,我仍然对更好看的解决方案感兴趣。
假设我有一个 User 类,并且一个用户有很多服务。然而,这些服务是完全不同的,例如 aMailService
和 a BackupService
,所以单表继承是行不通的。相反,我正在考虑将多态关联与抽象基类一起使用:
请注意,我希望在创建新服务时隐式创建 Service 实例。
那么,这是最好的解决方案吗?或者甚至是一个好的?您是如何解决此类问题的?
sql - 对子类的 jpa 连接查询
我在 JPA(休眠)中有以下关系。
对象 X 有两个子类 Y 和 Z。
对象 A 与对象 X 具有多对一关系。(注意,这是一种单向关系,因此对象 X 无法看到对象 A)。
现在,我想获取对象 A 中列的最大值,但仅在关系属于特定子类型的情况下,即...Y。
因此,这等于...在与 Y 有关系的所有 A 实例中,获取对象 A 中 column1 的最大值。这可能吗?我对如何查询它有点迷茫。
我在想类似的东西:
然而,这并没有考虑到 X 的子类......所以我有点迷茫。
任何帮助将非常感激。
ruby-on-rails - 两次加入相同的 Rails 模型,例如人们通过会员拥有_many 俱乐部和人们通过委员会拥有_many 俱乐部
型号:*人*俱乐部
关系 * 成员 * 委员会
人们应该能够加入俱乐部(会员) 人们应该能够成为俱乐部的董事会成员(委员会)
对于我的应用程序,这些涉及非常不同的功能,所以我不希望使用标志来设置 (is_board_member) 或类似的。
我发现自己想写:
人们 has_many :clubs :through => :membership # :as => :member? :foreign_key => :member_id? has_many :clubs :through => :committee # as (above)
但我不确定如何将它缝合在一起
ruby-on-rails - 关于如何跟踪特定对象的标签计数的建议
我正在寻找有关如何跟踪与 Rails 中特定对象关联的标签数量的建议。我正在使用acts_as_taggable_on,它工作正常。我想做的是搜索所有没有标签的对象,最好是通过一个范围,即 Object.untagged.all
我的第一个想法是使用 after_save 回调来更新模型中名为“taggings_count”的属性:
不幸的是,这显然使我陷入了无限循环。我需要使用 after_save 回调,因为 tag_list 在保存主对象之前不会更新。
如果我即将推出自己的标记系统,我将不胜感激。
问候
罗宾
ruby-on-rails - Rails 中相同两个表上的两种不同类型的关联
我有两个模型,用户和主题,我目前正在主题用户表中加入 HABTM 关联。基本上,在用户创建新主题后,其他用户可以选择它以供自己使用。
但是,只有主题的原始创建者才能对其进行编辑。所以,我需要有一些其他类型的关联来处理这种关系,比如主题中的 created_by_id 字段。
通过这种方式,用户模型充当两个不同的角色:他们可以是主题的实现者和/或主题的所有者。实现者关系由themes_users连接表处理;问题是:处理这种二级关联的正确方法是什么?我是否需要让用户多态,然后让 created_by_id 引用成为“所有者”?或者有什么更简单的吗?
非常感谢你的帮助!
ruby-on-rails - 如何避免多态关联
鉴于您必须实现一个新闻提要,就像在社交网络中看到的那样,例如 facebook。目前我正在使用一个新闻类,它有一个多态关联,可以是任何类型的图像、评论、友谊、GroupMembership 等。每当创建对象时,也会创建新闻。它在 AR(ActiveRecords) 上运行良好,但是当我切换到 DM(DataMapper) 或 Sequel 时我遇到了麻烦,因为两者都不支持多态关联并且不鼓励它的使用。
一种解决方法是使用带有大量 UNION 的大 SQL 子句来合并所有应该被视为新闻的不同表。但这有一些缺点,尤其是性能会很糟糕。
所以我想知道如何在没有多态关联的情况下解决问题,同时仍然获得良好的性能并且没有其他缺点,比如有可能将元数据添加到新闻中?
sql - 通用数据库表设计
只是想找出为以下场景设计表格的最佳方法:
我的系统中有几个区域(文档、项目、组和客户),每个区域都可以记录针对它们的评论。
我的问题是我应该有一张这样的桌子:
其中只有一个 id 将有数据,其余的将为 NULL 或者我应该有一个单独的 CommentType 表并且我的评论表是这样的:
我的想法是,从索引的角度来看,选项 2 会更有效。这个对吗?
ruby-on-rails - 在 Rails 中的多态关联中查找没有或有孩子的父母
我有两个模型:我的 RoR 项目中的汽车和图片
和
我如何才能找到所有只有儿童照片的汽车?
mysql - MySQL:两个 n:1 关系,但不能同时两个
对不起标题,很难解释。
我需要一个类似这样的数据模型:
如您所见,一个集合既可以属于用户,也可以属于学校。我的问题:它应该只允许属于用户或学校。但绝不会同时发生。
我怎么解决这个问题?
ruby-on-rails - 使用具有嵌套关联的多态路径
我有一个看起来像这样的多态关联:
我想要一种从父项创建新行的简单方法。因此,我可能正在编辑 Work 对象的视图,并且想要创建一个新 Line 对象的链接。通常,我会这样做:
助手会为此工作。但是,这需要我检查 Line 在控制器中属于哪个父级,从而违背了多态性的目的(如果是这种情况,我可以使用两个引用)。所以,我的问题是,如何让路径像普通路径助手一样多态地工作?