我目前将IRC用户存储在字典中,使用他们的昵称作为“关键字”,以便于检索。用户是从SQLAlchemy检索的,所以users['deepy']是一个我定期与数据库同步的SQLAlchemy对象。
现在我的问题是,在IRC上,人们可能有很多渠道,而我只跟踪其中一个渠道。我需要一个关于如何改善这一点的建议。
我一直在考虑做几乎相同的事情,但也将频道的用户(作为列表)存储在以频道名称为键的字典中,如下所示:
{ '#two': ['reference to user9', 'reference to user62'], '#one': ['reference to user1', 'reference to user2'] }
这些引用指向包含SQLAlchemy对象的用户字典。
这是一种明智的方法吗?
我使用的是Python2.7、PostgreSQL、SQLAlchemy和Twisted的irc.ircclient。
发布于 2012-11-01 00:36:21
我发现存储尽可能少的SQLALchemy对象是最好的。存储大量的SQLAlchemy对象会导致不得不担心同步问题并耗尽内存。
我会跟踪用户名或用户I,而不是实际的用户对象:
{ '#two': ['bob1', 'tom2'], '#one': ['bob1', 'mary1'] }然后,每当我需要用户的信息时,我都会从数据库中获取这些信息。如果我只有几个用户,并且需要频繁地访问他们,那么我会创建一个将用户名映射到SQLAlchemy用户对象的字典。
https://stackoverflow.com/questions/12974182
复制相似问题