no_picture

第2回 中国地方DB勉強会に参加したり、喋ったり。

第2回 中国地方DB勉強会 に参加しました。 O/R Mapping の話をするよ。特にActiveRecordの話をしたかった。 セッションしました。準備不足はいいわけにはできないけど、ぶっちゃけ準備不足で、対象者が詰め切れていませんでした。 とはいえ、スライドはアップロードしておきます。 O/R Mapping の話をするよ。ActiveRecord の話をしたかった。 from Tomohiko Himura よろしい、ならばMicro-ORMだ ORM の利点を長所もわかったんだけど、 ORM が使えない場面で ORM がもつ機能の一部を使いたい。そんなときに Micro-ORM が便利だよ。という話がつづきました。 特にデータのマッピングを操作する部分の機能を持っているようでした。 たしかに、普段のプログラミング生活では表現力の高いクエリビルダと値のマッピングができれば充分な感じは最近していたりもします。 スライド MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報 MySQL と MySQL Cluster 異なる製品で、MySQLのストレージとして MySQL Clusterを利用したりできるようです。 単体でも使えるっぽいですが、よくわかっていません。 安価なマシンを並べて性能を出しつつ、高い可用性を実現します。 使われてる箇所としては、「艦コレ」で使われていたのが最近の話題っぽいです。 MySQLのストレージとして使えるので、InnoDBの互換性向上とかもやってるそうです。 スライド AWSで始めるPostgreSQL/MySQL AWS で MySQL や PostgreSQL をいれる話でした。 Wiki に内容がまとめられてます。 さくらインターネットにおけるデータベース提供の実際 特にレンタルサーバの話が印象的でした。 データベース不慣れな人が多く、そういった一部の人が共用サーバに不可をかけてしまったりするということは予想通り多いみたいです。 コントロールパネルが書籍との違いが出てしまうので、なかなかUIを変更できなっかたりもするそうです。 DBはIOがボトルネックになるので仮想化は向いてないのかなあ。なんて話もしてでていました。

no_picture

Rails で外部キー制約

外部キー制約は好きですか? O/RマッパーしててもなるべくDBの力は借りたいです。 ということで、Ruby Toolboxで foreign を検索して、ちらちら見て一番人気のforeignerを選びました。基本的にはデータベースに丸投げなので Rails4 でもいまのとこ問題なく使えております。 インストールは Gemfile に: gem 'foreigner' と追加して bundle install あとはマイグレーションで: create_table :comments do |t| t.references :post, null: false, index: true t.foreign_key :posts, dependent: :delete end としておきました。 ついでに確認。 存在しない 外部キーを指定すると保存を失敗する確認。postgresの例: Comment.create(post_id: 1) # => PG::Error: ERROR: insert or update on table "comments" violates foreign key constraint "comments_post_id_fk" キーを指定して、親になるオブジェクトを削除すると消える確認: Comment.create(post_id: Post.create) Comment.count # => 1 Post.count # => 1 Post.first.destroy Post.count # => 0 Comment.count