2009年8月16日の日記

<2009/08/17 2009/08/15>

無題

アンパンマンDBの新検索システム、SQL文に使用する正規表現を4分の1に短縮したり、キャラ番号による検索に対応したりしました。
で、ちょっと複合条件による検索について考えてます。
絞込みに相当するAND検索は当然実装していますし、検索結果を除外するNOT検索も一応できています。
OR検索については、限定的にですが使うことができます。
先ほどNOT検索を一応できていると表記したのは、下記のNAND・NOR検索に関する問題があるからです。
AND検索に使用する語句の一つ一つにそれぞれNOTをかけると、NOR検索と同等の効果があります。
一方、NAND検索はORの語句一つ一つにそれぞれNOTをかけたのと同等ですが、OR検索が限定的な機能のため、これをそのまま行うことはできません。
なので、OR検索全体のNOTでNANDにすることを考えていたのですが、OR全体のNOTはNORだし、そのための構文は見かけ上OR検索の最初の一つだけにNOTをかけたのと同じに見えて感覚的にも気持ち悪いのです。
しかも、元々限定的なOR検索に更に条件を加えたものなので、検索方法としての使い方も更に限定的になっています。
たとえば、OR検索の「1988,1989年」は、1988年または1989年の全てという意味ですが、NAND検索としての「-1988,1989年」は、1988年以外または1989年以外の全てという意味になります。
ちょっと考えれば分かると思いますが、1988年以外に当てはまらなかった1988年の項目は1989年以外に当てはまり、逆もまた然りです。
つまり、検索として全く意味を成していないのです。
メロンパンナとロールパンナが共演していないとか、そういう検索条件ならばNANDの出番なのですが、そういう需要はあまりなさそうですし…。

<2009/08/17 2009/08/15>