PHPからRuby(Rails)に移行して1ヶ月ほどの試行錯誤勉強中の者です。
経験が浅く質問がおかしな内容でしたら申し訳ございません。
ゲームのAPIを作成しておりまして、ユーザーデータ系のシャーディングが要件に
ありまして、以下のgemを使わせていただこうと考えております。
https://github.com/yuemori/activerecord-shard_for
以下のような構成を考えておりまして、分割DB内の複数テーブルでトランザクションを
張りたいのですが(ユーザー情報とユーザーユニットのような)
上記gemでput!メソッドがあるのですがそちらだと1テーブルで
トランザクションが完結してるような動作をしておりまして、複数テーブルで同じコネクションで
トランザクションを張るにはどのようにすればよいかご教授いただけないでしょうか・・・
また、ActiveRecordの機能でアソシエーションというものがあるようなのですが、
そちら活用した設計にするのが望ましいでしょうか?
DBはMySQLの5.6になります。
シャーディングのキーはユーザーIDを割り算して余りを求めるシンプルなものにしております。
共通DB
グローバルシーケンステーブル
分割ユーザーDB1
ユーザー情報テーブル
ユーザーアイテムテーブル
ユーザーユニットテーブル
・・・
分割ユーザーDB2
ユーザー情報テーブル
ユーザーアイテムテーブル
ユーザーユニットテーブル
・・・
PHPではcodeigniterやzendフレームワークを使って来ておりまして、それぞれで
シャーディングは実装していたのですが、Railsの方が不慣れなせいか難しく感じます。
アソシエーションのようなものはなかったです。
何卒、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。