我有一个使用一个多态树表作为它的装置的核心内容管理系统中的应用。我来到这里曾经树的生长相当大的问题,因为我们有好几个不同的模块(25),只是在做:包括=>:如不削减芥末。实例是我们多态的关系的名称。

有趣的是,在大多数情况下,当我想这些项目的大名单,我真正想要的是他们的名字从关联表(例如用于索引栏的目的),其余全部是在中央台。所以我想,我也许应该实施一些列排序缓存在中央表的名称。 (像该轨道已经计数器缓存一样)。

我只是想知道如果一个插件存在已经管理这个?

如果不是,我只是去一个“名称”列添加到中央台和因为所有的多态模型继承关父类,只需添加每当创建项目是推动该名跨越到中央台的回调或更新。那么我只是做一个大的迁移来填充它摆在首位?

任何瑕疵该设计?

我想更灵活的列可能是某种序列缓存在那里我可以存储以后如果需要的话其他的东西?尔加! :d

有帮助吗?

解决方案

好来回答我的问题,我说在中央台一个“cached_name”列,创造了一个“rebuild_cached_name!”方法只是通过每一个记录去,并设置缓存的名称为适当的值。我打电话从创建高速缓存列迁移重建方法。

我然后修改于我的抽象类(一个多晶型物继承关),并使其在分配中心表cached_name的after_create方法。我还增加了after_update方法调用更新每当正常名称被改变的cached_name。

很简单真的,但现在它意味着不再不必调用在简单情况下,多晶型物等生成索引栏。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top