タグ

ブックマーク / zigorou.hatenablog.com (10)

  • InnoDBの複合FOREIGN KEY制約について - 日向夏特殊応援部隊

    今回はInnoDBなら是非使いたい機能のひとつ、FOREIGN KEY制約の話です。 まずはテーブルを用意 Fooと言う複合primary keyを持つテーブルを用意したとします。 CREATE TABLE `Foo` ( `a_id` int(11) NOT NULL default '0', `b_id` int(11) NOT NULL default '0', `name` text, PRIMARY KEY (`a_id`,`b_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8こういう場合、このテーブルに対してFOREIGN KEYを張るケースで、 a_id, b_idのセットで張りたい場合があります。 多くの方は専らFooのprimary keyをひとつにしてsequencialな値としてあげて、 そこに単一のFOREIGN KEYを張るんじゃ

    InnoDBの複合FOREIGN KEY制約について - 日向夏特殊応援部隊
    mogwaing
    mogwaing 2010/04/05
    InnoDBのFOREIGN KEYを使う場合は、FOREIGN KEYで参照されるテーブルの当該レコードが(必要ならば順番通りに複合)INDEXが張られている必要がある
  • OpenID Tech Night vol.4 で講演してきました - 日向夏特殊応援部隊

    資料の方は、会社の方で許可が下り次第このエントリにて公開したいと思います。しばしお待ち下さい。 公開しました。 Introduction OpenID Authentication 2.0 こちらが当日の資料になります。 tkudo さんの最新動向@2009について そもそもデジタルアイデンティティとは何ぞやから始まり、SAML, InfoCard, OpenID の違いについて枠組みを説明しつつ、昨今の OpenID の盛り上がりと共にアイデンティティ界隈も発展して来たよと。 個人的には tkudo さんが「枯れた技術」として挙げていたIDレポジトリ間の同期やらその運用辺りの話とか聞きたいーとか思ったけど、どう考えてもあの場でそれ以上突っ込んだらやり過ぎかなーw Introduction OpenID Authentication 2.0 Introduction OpenID Auth

    OpenID Tech Night vol.4 で講演してきました - 日向夏特殊応援部隊
  • Module::Pluggable::Fast Source Code Reading - 日向夏特殊応援部隊

    そもそも論ですけど Similar to C but instantiates plugins as soon as they're found, useful for code generators like C. ってあるように、Module::Pluggableと同じインターフェースな訳じゃなくて似てるモジュールです。 似てる 速い すぐインスタンス化する ってのが特徴ですね。 同様にimport経由でpluginの読み込みを行います。 Module::Pluggable::Fast import() sub import { my ( $class, %args ) = @_; my $caller = caller; no strict 'refs'; *{ "$caller\::" . ( $args{name} || 'plugins' ) } = sub { my $sel

    Module::Pluggable::Fast Source Code Reading - 日向夏特殊応援部隊
  • だいぶ遅くなったけどMozReplについてのプレゼン資料を今更公開してみる - 日向夏特殊応援部隊

    そういえば前にSoozy Conference #2でやったプレゼン資料を公開してなかったので、今日リクエストもあったので公開してみるです。 資料 MozRepl and XPCOM MozReplの実際の拡張例 http://moz-addon.g.hatena.ne.jp/ZIGOROu/?word=%2a%5bMozRepl%5d ここら辺から漁ってくだしあ。 とにかくMozReplはむちゃくちゃ便利。拡張作る人は知らないとダメだお。 あとnsIInterfaceInfo辺りから、オンラインドキュメント漁らなくてもAPIの概観だけは掴むみたいな処理をいつか書きたいんだけど、チャレンジしてくれる人が居たらそれはそれで嬉しいです。 ご一報下さい。(ぇ

    だいぶ遅くなったけどMozReplについてのプレゼン資料を今更公開してみる - 日向夏特殊応援部隊
    mogwaing
    mogwaing 2007/09/14
    mozrepl
  • ブラウザキャッシュの挙動を見てみる - 日向夏特殊応援部隊

    改めて勉強したかったので、こんなテストしてみました。 Apacheの設定とテスト内容 <VirtualHost *:80> ServerAdmin zigorou@localhost DocumentRoot /home/zigorou/www/cache ServerName cachetest.art-code.org ExpiresDefault "access plus 5 minutes" Alias /test1 /home/zigorou/www/cache/test Alias /test2 /home/zigorou/www/cache/test Alias /test3 /home/zigorou/www/cache/test <Location /test1> FileETag None ExpiresActive Off </Location> <Location

    ブラウザキャッシュの挙動を見てみる - 日向夏特殊応援部隊
  • Re: MySQL最適化のミニtips - 日向夏特殊応援部隊

    元ネタ: http://labs.unoh.net/2007/07/mysqltips.html あまり具体的じゃないので、僕の考えとか。 正しいかどうかは各自の状況だとか実際試すべきなんだけど、参考になれば。 MyISAM、InnoDBなどテーブルタイプ 僕は断然InnoDB派です。 ただ仰るとおり、ログるだけのテーブルとかならMyISAMでもいいとは思うけど。 トランザクションやロック処理などが必要ない場合など、MyISAM形式にも良いところはあるので検討してみる価値はあるかもしれません。 これだけの指摘だとちょっと微妙な気がするです。 MyISAMの使いどころってのは、 ピンで他とリレーションが無い単純追記系のテーブル リレーションがあり、同一トランザクション内での更新系クエリが存在する場合は、トランザクションが期待通りに動かないので、基的にはInnoDBと混在させるべきではない

    Re: MySQL最適化のミニtips - 日向夏特殊応援部隊
    mogwaing
    mogwaing 2007/07/23
    サービスで使うストレージエンジンはinnodb ? ログ系ならmyisam
  • Catalystのデプロイに関するあれこれ - 日向夏特殊応援部隊

    雑多なメモです。 とりあえずCatalystにおけるデプロイってどーよって辺りからごニョゴニョしてた内容です。 Module::Install + Module::Install::Catalyst catalyst.plでgenerateされたMakefile.PLは、 use inc::Module::Install; name 'MyApp'; all_from 'lib/MyApp.pm'; requires 'Catalyst' => '5.7007'; requires 'Catalyst::Plugin::ConfigLoader'; requires 'Catalyst::Plugin::Static::Simple'; requires 'Catalyst::Action::RenderView'; requires 'YAML'; # This should refle

    Catalystのデプロイに関するあれこれ - 日向夏特殊応援部隊
  • nsIWindowWatcherを使って全てのダイアログを捕捉する - 日向夏特殊応援部隊

    相当ニッチな用途ですけど、 window.alert() window.confirm() window.open(); window.openDialog(); window.print(); などなど、特別なダイアログが開いた事を検出するにはnsIWindowWatcherを使うと出来るようです。 var wwatch = Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci.nsIWindowWatcher); var observer = { observe: function(aSubject, aTopic, aData) { if (aTopic != "domwindowopend") return; aSubject.addEventListener("load", function() { aSubjec

    nsIWindowWatcherを使って全てのダイアログを捕捉する - 日向夏特殊応援部隊
  • Carp::Clanのメリット - 日向夏特殊応援部隊

    すみません、今までずっと知りませんでした。orz... 前々から人のソースに良く出て来るのでなんでかなーと思ったんですけども、ふと気になって調べてみました。 carp, croakの違い 論より証拠 #!/usr/bin/perl use strict; use warnings; package Pack::C; use Carp; sub foo { carp("test"); } package Class::B; sub foo { Pack::C::foo; } package Pack::A; sub foo { Class::B::foo(); } package main; Pack::A::foo(); と、このソースのuse Carpをuse Carp::Clanに変更した物で実行結果が異なります。 use Carp test at carp.pl line 17use

    Carp::Clanのメリット - 日向夏特殊応援部隊
    mogwaing
    mogwaing 2007/05/24
    [Carp::Clan]
  • JSON文字列化 - 日向夏特殊応援部隊

    JSのデータをJSON文字列化したいー、なんて時があるならば json.orgが公式で出しているjson.jsを使うのが世間では多いみたいなんですが、 これはCoreオブジェクトのprototypeにメソッド追加してるんで、場合によってはハマる人が多い*1みたいです。 http://search.cpan.org/dist/MozRepl/lib/MozRepl/Plugin/JSON.pmでもjson.jsを使っていたのですが、それが嫌だったので止めました。 別の選択としては下記のような物があります。 http://code.google.com/p/trimpath/wiki/JsonLibrary (trimpathの一部?) http://www.thomasfrank.se/json_stringify_revisited.html (上の拡張らしい) で今はjsonString

    JSON文字列化 - 日向夏特殊応援部隊
  • 1