Python 2.7,PGSQL,SQLAlchemy和twisted的irc.ircclient。
我目前正在将IRC用户存储在字典中,使用他们的昵称作为“密钥”以便于检索,用户从SQLAlchemy中检索,因此users['deepy']
是一个SQLAlchemy对象,我定期与我的数据库同步。< / p>
现在我遇到的问题是,在IRC上,人们可以在很多频道中,我只是跟踪一个,我需要一个关于如何改进它的建议。
我一直在考虑做同样的事情,但也将频道用户(作为列表)存储在字典中,频道名称为关键字,如:
{ '#two': ['reference to user9', 'reference to user62'],
'#one': ['reference to user1', 'reference to user2'] }
引用是包含SQLAlchemy对象的用户词典。
这是一种明智的做法吗?
答案 0 :(得分:0)
我发现最好尽可能少地存储SQLALchemy对象。存储大量SQLAlchemy对象导致不得不担心同步问题并耗尽内存。
我会跟踪用户名或用户ID而不是实际的用户对象:
{ '#two': ['bob1', 'tom2'], '#one': ['bob1', 'mary1'] }
然后每当我需要用户的信息时,我都会从数据库中获取它们。如果我只有少数用户并且需要经常访问它们,那么我会创建一个将用户名映射到SQLAlchemy用户对象的字典。