2

我目前将 IRC 用户存储在字典中,使用他们的昵称作为“键”以便于检索。用户是从 SQLAlchemy 中检索的users['deepy'],我定期与数据库同步的 SQLAlchemy 对象也是如此。

现在我遇到的问题是,在 IRC 上,人们可以在许多渠道中,而我只是在跟踪一个。我需要关于如何改进这一点的建议。

我一直在考虑做几乎相同的事情,但还将频道的用户(作为列表)存储在字典中,并以频道名称作为键,例如:

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

对包含 SQLAlchemy 对象的用户字典的引用。

这是一个明智的做法吗?

我正在使用 Python 2.7、PostgreSQLSQLAlchemy和 Twisted 的 irc.ircclient。

4

1 回答 1

0

我发现最好存储尽可能少的 SQLALchemy 对象。存储大量 SQLAlchemy 对象会导致不得不担心同步问题并耗尽内存。

我会跟踪用户名或用户 ID,而不是实际的用户对象:

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

然后,每当我需要用户的信息时,我都会从数据库中获取它们。如果我只有几个用户并且需要经常访问它们,那么我将创建一个字典,将用户名映射到 SQLAlchemy 用户对象。

于 2012-10-31T16:36:21.443 回答