2012-07-30 71 views
0

我有一堆DNS記錄在表中,其中「類型」列定義給定記錄的類型。多個模型,在鋰表

我想有型號鋰類層次代表這些記錄,例如:

RR - base resource record (abstract - sort of) 
RR_SOA - SOA record, extends RR 
RR_CNAME - CNAME record, extends RR 
... etc ... 

所以,一類爲每個記錄,都映射到同一個表。

接下來我想使用RR :: find,它會自動給我一個對象列表,其中每個對象的類都對應於實際記錄的類型。

這甚至可能沒有太多的黑魔法?

+0

這樣,每個記錄1類(在表而言)? – 2012-07-30 01:58:00

+0

每個記錄類型有一個類。 – 2012-07-30 02:02:43

+0

例如 類型= CNAME含量= foo.com 類型= SOA含量= xyz324 類型= CNAME含量= bar.com RR ::發現( '全部')shold給 陣列(RR_CNAME的INSTANCE1,實例1 RR_SOA,RR_CNAME的實例2) – 2012-07-30 02:03:37

回答

1

是的(任何事情都是可能的),但你的方法可能太雄心勃勃。在我的POV中,我將依賴0​​來處理目標表的基本查詢,但通過在RR(特別是從Model繼承的find方法)上利用過濾器,可以將該實例傳遞給新實例化的集合類(SOA,CNAME等)以及它們在表中的位置(所以SOA對象只與特定記錄或主鍵關聯)。

有一些黑魔法正在進行,但沒有鋰核心開發人員沒有考慮。

底線,您的表的基本類(RR模型),SOA,CNAME等的多個(可能從與Model無關的另一個基類繼承),以及過濾器(放在任何地方)介入RR :: find和/或後期綁定的RR :: findby *

這是否有意義?

(這需要一些試驗和錯誤。首先,看看你是否可以操縱數據輸出,在此之後,剩下的就是黃油)

+0

它確實有道理,但我發現在這種情況下使用過濾器有點瑕疵。過濾器在Lithium中非常強大,但它讓我擔心他們會在「遠程位置」放置一些重要的邏輯。例如,如果我打開RR_SOA,我真的很想看到那裏的邏輯,並且稍後不會感到驚訝,因爲一些misc /代碼會覆蓋它的行爲。 它完全不同於日誌,這不會干擾我的邏輯,但在這種情況下,它只是「太多」。這感覺就像「我無法正確地做到這一點,所以讓我們來代替」:) – 2012-07-30 10:34:26