Hatena::Groupasakura

浅倉卓司@blog風味? このページをアンテナに追加 RSSフィード

Error : RSSが取得できませんでした。

2006-03-30(Thu)

確かにtagのAND検索をするモジュールが必要だ。

| 21:30 |  確かにtagのAND検索をするモジュールが必要だ。 - 浅倉卓司@blog風味? を含むブックマーク  確かにtagのAND検索をするモジュールが必要だ。 - 浅倉卓司@blog風味? のブックマークコメント

 ついさっき

はてなブックマークだと、入力時に一旦 parse して分解してしまって、正規化した tag テーブルにひとつのタグでひとつのレコードという形で保存してある。これだと tag に index 張れば普通に検索できる。というか普通こうするんだと思ってた。

Tags with MySQL

ってのを見かけて、

普通そうでしょー、と主張してみる。というか、RDBMSは正規化してナンボだと思ってるので。全文検索使うならRDBMSじゃないほうが便利な気がするし……。

と思ったのだけれど、コメントを見ると

# kazeburo 『tagテーブルを作ってレコードを追加〜っていうのが普通だと思います。

ただ、複雑なTagの検索、aとbを含んで、cとdを含まないエントリーとか言う時にboolean modeみたいな方法がとれたらSQLが複雑にならなくて楽だなということです』

とか書れてました。そういう時はClass::DBI::Sweetを使えば勝手にSQLが生成されて問題ないっすよ。こうやれば簡単に……あれ、できないっぽい?!


 うーむ。僕はCDBI::SweetのJOINを活用してサクっと解決するもんだと思ってて気にしてなかったのですが、もし本当にできないと*1ちょっと困る。

 SQLそのものはサラっと書ける気がするんで自動生成することそのものは問題ない気がするけど、どういうインターフェイスにするかは悩みどころ。

MyData::Article->search({
  'tags.name' => {
    -and => [qw/ foo bar baz /],
    -nor => [qw/ hoge fuga /],
  },
});

みたいな感じでしょうか*2

*1:ちゃんと調べてないんで、ひょっとしたらできるかもとか……。

*2:というか、こう書けばCDBI::Sweetで検索できると思ってた。実はできる?

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20060330
2004 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 02 | 03 | 04 | 06 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 05 | 07 |
2014 | 01 | 02 |
2016 | 01 |
2017 | 01 | 05 |
Error : RSSが取得できませんでした。