database

Active Record の哲学

rails で使われている ORM である Active Record。当たり前のように広く使われているが、Active Record は何を解決するのか? Active Record の哲学 README に書いてある。 Philosophy - rails/activerecord Active Record attempts to provide a coherent w…

MySQL InnoDB でテーブル全体をロックしないようにする

mysqlで UPDATE をするときは、トランザクションを作るのが基本だが、 トランザクションを作るということは ロックがかかる UPDATE する行が1行であれば、その行だけにロックをかける。それだけなら特に問題ないが、テーブル全体にロックがかかる場合がある…

テーブルを正規化するほど、アプリから使うのは難しくなる

DBのテーブル設計で、正規化するときれいだけど、アプリから使うとき難しくなる問題。 とても有名で今更な話ではあるけど、明文化したことはなかったので書き残しておく。 正規化していると、複数のテーブルから取る必要がある たとえば、ユーザー一覧を表示…