2

私は現在、IRCユーザーを辞書に保存しており、簡単に取得できるようにニックネームを「キー」として使用しています。ユーザーはSQLAlchemyから取得されるためusers['deepy']、データベースと定期的に同期するSQLAlchemyオブジェクトも取得されます。

今私が抱えている問題は、IRCでは、人々が多くのチャネルに参加する可能性があり、私は1つを追跡しているだけだということです。これを改善する方法についての提案が必要です。

私はほとんど同じことをすることを考えていましたが、チャネル名をキーとして辞書にチャネルのユーザーを(リストとして)保存することも考えていました。

{ '#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 に答える