プロが教えるわが家の防犯対策術!

CSVファイル2つを検索するシステムを作成したいのですが、ロジックがわかりません。
どのように検索していけば効率的でしょうか、教えてください。

メインCSVファイル
 メインID・商品名・説明
詳細CSVファイル
 詳細ID・メインID・生産者住所・生産者氏名

で、
メインCSV1データにつき詳細CSVが複数データあります。
検索テキストボックスは1つで、
スペース区切りで複数キーワードが入ります。
検索する項目は、商品名・説明・生産者住所・生産者氏名で、複数キーワードはAND条件です。

説明出来ていますでしょうか?
よろしくお願いします。

A 回答 (3件)

普通、そんな処理をやる場合、CSV状態で行わず、DB使うと思うのだけど、、



とりあえず、
(1)CSVファイルの内容をDBにInsert
(2)クエリ実行で、結果を取得
(3)DBをdeleteして終了
ですかね?
いちいち、Inset delete してるのが、気に入りませんが(=w=;

もしDBダメなら、複雑になると思いますがXML化ですかね。
(1)CSVファイルの内容をXML化
(2)XMLによる検索実行で、結果を取得
>>検索出来ないなら、自力で処理書く

たぶん、実現可能な気がしますが、
かなり難しいと思います。(--;

この回答への補足

回答ありがとうございます。

うー、DBが使えないんですよ。

1つのCSVにまとめようかと思ったんですが、
ムリだったので2つのファイルに別れてしまいました。

補足日時:2005/09/28 20:03
    • good
    • 0

「DBが使えない」あなたの為に、モジュールが用意されていますよ。



http://search.cpan.org/~jzucker/DBD-CSV-0.22/

参考URL:http://homepage3.nifty.com/hippo2000/perltips/DB …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

へぇー、知りませんでした。

今回使えるかどうかわかりませんが、
今後のためにも勉強しておきます。

お礼日時:2005/09/29 17:01

それぞれのファイルの行数、


(3000行を超える?超えない?)
要求される応答時間、
(公開サーバ?非公開サーバ?)
サーバの性能はどのくらいですか?
(共有サーバ?専用サーバ?)

>1つのCSVにまとめようかと思ったんですが、
>ムリだったので2つのファイルに別れてしまいました。

以下のような形ならいけると思いますが、
何か別の事情があるのでしょうか?

メインID,商品名,説明,詳細ID,メインID,生産者住所,生産者氏名,詳細ID,メインID,生産者住所,生産者氏名,詳細ID,メインID,生産者住所,生産者氏名,...

もしくは以下のような1次正規形とか
#最初の3列は3行とも同じ

メインID,商品名,説明,詳細ID,メインID,生産者住所,生産者氏名
メインID,商品名,説明,詳細ID,メインID,生産者住所,生産者氏名
メインID,商品名,説明,詳細ID,メインID,生産者住所,生産者氏名
...

この回答への補足

結局、
いろいろアドバイスいただきましたが、
いくつかのセル(?)を半角スペースを区切り文字とした複数データをもつセルにして、処理することにしました。

それでもカンマの数は相当ですけれど。

補足日時:2005/09/29 17:10
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

CSVのカンマの数が莫大(600以上)になり、
いくつまでいけるのか不安になったので
1つにしなかったのです。

「1次正規形」ってはじめて聞きました。
いろいろ勉強になります。

お礼日時:2005/09/29 17:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!