FlaskフロントエンドでPythonでマルチプレイヤーゲームを開発していますが、NoSQLのやり方についてもっと学ぶ機会として使っています。FlaskアプリケーションでのRedisとRDBMSの共存(うまくいけば協力)
レディスは、サーバー側のセッションや他の一時的なデータの保存など、このアプリに必要なもののいくつかに適しているようです。どのゲームが進行中で、誰がオンラインになっているかなどがあります。Flask/Redisのレシピもいくつかあります。
しかし、データアカウントには、ユーザーアカウント、完成したゲームのログなど、従来のRDBMSの中に住んでいたかったものがいくつか残っています。これらのことはできませんが、 RDBMSはそれらに適していると思うし、Redisはすべてを記憶に入れたいので、ディスク上のこのデータの一部を「倉庫保管」するのは理にかなっているようだ。
この2つのデータストアを幸せに一緒に暮らす方法は、私にとってはあまり適していません。 ORMがデータモデルの一部であるすべてのデータを所有したいので、SQLAlchemyやRediscoicのようなORMを使用するのは間違いないようですが、ORMからクラスを取得する必要があるのは必然です(例えば、「ユーザーはRDBMSにありますが、ゲームはRedisにあり、ゲームにはユーザーが参加しています」
RedisのようなNoSQLストアを使ってPython Webアプリケーションを展開した経験がある人はいますか物事とRDBMSを他の人のために持っているならば、それらを一緒に働かせるための戦略はありますか?
OK、SQLストアからのプライマリキーの格納には妥当性があります。私の出発点はRedisデータモデルのORMとしてrediscoを使用していました.RediscoマッピングされたデータモデルクラスがSQLalchemyでマップされたデータモデルクラスへの参照を持つと失われ始めました。私はおそらく私はちょうど1つのORMか他を選び、1つからの一意の識別子を別のものの外来キーとして扱うならば、おそらく最良だと思います。 – tonycpsu
好きな場合は両方のORMを使用してください。しかし、ORM間でモデルを相互参照するには、明示的な外部キーを使用せず、単純な整数フィールドを使用し、参照されるオブジェクトの主キーで「手動で」それらを設定します。 –
それはかなりきれいに聞こえる - 私はそれを撃つだろう。ありがとう。 – tonycpsu