タグ

ブックマーク / lukesilvia.hatenablog.com (3)

  • type_castに気がつかなかった。User.new(:school_id => @school)はだめなのね - LukeSilvia’s diary

    とんでもない見落としをしていた。こんなテストコード書いてた。 fixtures :pay_types def test_record o = Order.new(:pay_type_id => pay_types(:one)) assert_equal o.pay_type, pay_types(:one) ... end このテストは通りますが、やってはいけない書き方です。何がいけないかというと、「:pay_type_id => pay_types(:one)」の部分。 以下の例をみるとおそろしさが分かる。 Loading development environment. >> o = Order.new(:pay_type_id => PayType.find(2)) => #<Order:0x22f8080 @new_record=true, @attributes={"name"=

    type_castに気がつかなかった。User.new(:school_id => @school)はだめなのね - LukeSilvia’s diary
    tohtas
    tohtas 2010/07/14
  • MySQL のNULL ではまったことあれこれ - LukeSilvia’s diary

    MySQL に限らず、SQL のNULL の仕様には何回か「えっ」と驚くことがあったのでメモしておこうと思います。5.1 版の日語マニュアルがなかったものについては、4.1 のマニュアルを参照しました。 そもそもNULL は何を意味するか NULL は未定義または、不明を意味する。「電話番号を持たない」ということを表現する場合は、NULL ではなく、空の文字列を使う。 NULL 値というものを SQL 初心者はよく混乱します。SQL 初心者は、多くの場合、NULL が空文字 "" と同じであると考えてしまいます。これは違います。たとえば、以下のステートメントは完全に別のものです。 mysql> INSERT INTO my_table (phone) VALUES (NULL); mysql> INSERT INTO my_table (phone) VALUES (""); どちらのス

    MySQL のNULL ではまったことあれこれ - LukeSilvia’s diary
    tohtas
    tohtas 2010/03/23
  • データベースを用いたセッションデータ管理について - LukeSilvia’s diary

    Web アプリケーションとは切っても切れないセッション機構。DB ベースでセッション管理を行なって得られた知見と、それを元に考察した結果をまとめてみます。 セッションデータの特性 DB で管理される他のデータに比べ、セッションデータはかなり特殊です。主な特徴は次のような感じ。 データが増加するのが速い 定期的な削除が必要 頻繁に更新される リクエスト毎に読みに行く必要がある このデータを読めないとアプリケーション全体にアクセスできない アクセス頻度が高いということです。あと、1つ目の特徴からセッションデータについては意識的に管理してやる必要があります。 現在の環境 アプリケーションの領域が少し特殊で、セッションデータがやたらたまります(ユーザ数何百万のサービスとかそういうのではないです)。 RDBMS MySQL 4.0.22 ストレージエンジン InnoDB レコード数 6千万 テータサ

    データベースを用いたセッションデータ管理について - LukeSilvia’s diary
    tohtas
    tohtas 2009/05/27
  • 1