2012-10-19 81 views
2

Python 2.7,PGSQL,SQLAlchemy和twisted的irc.ircclient。Python irc bot + sqlalchemy,跟蹤多個渠道的用戶

我目前在字典中存儲IRC用戶,使用他們的暱稱作爲'key'以便於檢索,用戶從SQLAlchemy檢索,所以users['deepy']是一個SQLAlchemy對象,我經常與我的數據庫同步。

現在我遇到的問題是在IRC上人們可能在很多渠道,我只是跟蹤一個,我需要一個關於如何改進這個問題的建議。

我一直在思考一個字典,通道名稱爲重點做幾乎相同,而且存儲頻道的用戶(如列表),所以像:

{ '#two': ['reference to user9', 'reference to user62'], '#one': ['reference to user1', 'reference to user2'] }

的引用存在於包含SQLAlchemy對象的用戶字典中。

這是一個明智的方法嗎?

回答

0

我發現最好存儲儘可能少的SQLALchemy對象。存儲大量SQLAlchemy對象會導致不必擔心同步問題並使用內存。每當我需要的用戶信息

{ '#two': ['bob1', 'tom2'], '#one': ['bob1', 'mary1'] } 

然後我會從數據庫中獲取它們:

我會跟蹤,而不是實際的用戶對象的用戶名或用戶ID。如果我只有幾個用戶並需要經常訪問它們,那麼我會創建一個將用戶名映射到SQLAlchemy用戶對象的字典。