SQLiteには外部キーがない?

2009/11/16 | SQLite

SQLiteには現時点で外部キーはないのか。最近のバージョンではあるらしい。正確に言うと3.6.19から。ただSQLiteのバージョンといっても、SQLiteというデータベースソフトウェアがあるわけではないから、SQLiteを取り扱うためのツール(PHPとかPerlとか)で使用しているライブラリに依存しているのだろう。ということでphpinfo()で確認してみることにした。

一つ目のレンタルサーバではSQLiteの項目そのものがない。あれ。でもpdo_sqliteがあったのでそちらを確認すると3.3.6となっていた。これって多分ダメなんだよね・・・。

次のを確認してみた。SQLiteの項目はあったけど、2.8.17となっている。これって古すぎじゃないの。で、pdo_sqliteを確認するとこちらでは3.2.8となっている。SQLiteのバージョンは3系にはなっているものの外部キーはだめそうだ。

SQLiteはそもそも外部キーを作成するためのSQLを実行すると、エラーも出ずそのまま通ってしまう点がちょっと怖い。コレで大丈夫と思ってバージョンを確かめずにいると痛い目にあう羽目になりそうだ。SQLiteを使う際はバージョン確認は必須だ(他のソフトの場合も当然といえば当然だが深刻度が違う)。

それよりも素のSQLiteとPDO経由のSQLiteでバージョンが違う点には驚いた。個別にコンパイルされるわけだから当然といえば当然なのだが・・・。後者の場合PHPのsqliteコマンドを使うのとPDO経由で使うのとでは当然扱いが違うんだろうなぁ。

新版アンケートレンタルサービス公開

2009/11/14 | その他

新版のアンケートフォームレンタルサービスを公開した。

http://enq.jpform.net/

誰でも簡単に作成できるアンケートフォームレンタルサービスだ。使い勝手の良さはCubeQueryと同じ。設問タイプも変わらない。CubeQueryはPHP4のみ対応だったが、今回PHP5で全てのプログラムを新規に書き下ろした。機能面ではほとんどかわらないが、プログラムをかなりスリム化し、機能追加やメンテナンスも簡単にできるようにした(フレームワーク3eyesを使用した)。

携帯にも対応しているが、古い機種は切り捨てた(UTF-8の文字コードで統一)。本来ならエンドユーザの使い勝手も考慮してシフトJISで対応するのだろうが、メンテナンスの面を考慮した。

今日出来上がったばかりなので、まだまだバグがあるかもしれないが、まずは公開してみることにした。是非試用していただけたらと思う。試用してみて不具合を見つけて報告していただけるとなおさらうれしい。

今後の展開として有料化を目指すけど、従来からある有料のアンケートフォームレンタルサービスと比較して割安感を出すつもり。SSLも採用したいし、機能追加も予定している。無料版もそのまま残す予定。

ということで、試用していただけるとうれしいです。

無料アンケートレンタルサービスjpForm.net

Smartyの最新版でも大丈夫

2009/11/10 | Smarty

以前調べたSmartyのエラーの件、解決策が古いバージョンに戻すという方法をとったが、現行の最新バージョン2.6.26でも大丈夫なことを確認できた。こんな感じのエラー。

PHP Warning: preg_match() [<a href=’function.preg-match’>function.preg-match</a>]: Compilation failed: repeated subpattern is too long at offset 18454 in /library/smarty/Smarty_Compiler.class.php on line 454

2.6.20から2.6.26までのSmartyの変遷を追うと勉強になりそう。やらないけど。

SEOにページ数は重要か

2009/11/09 | その他

SEOにはいろいろな要素が絡む。「当該ウェブサイトにおけるページ数も重要な要素である」といわれ続けているが本当か。もちろんページ数も重要な位置づけであるように思う(コンテンツが伴わないと単なるスパムだけれど)。でもページが少なくても、検索エンジンの印象をよくすることはできるように思う。

この前新規で作った「残虐なのはどれだ」というサイト、ページ構成は1ページだけで、あとはAjaxで遷移させるだけのウェブサイトなのだが、作成して2ヶ月程度でページランク2を取得している(自社サイトからリンクは貼ってあるけど)。

残虐なのはどれだ

要点は「話題性のあることを取り上げた」とそれだけなんだけど。

SEOの観点からブログを更新している企業も多いようだが、単に更新するだけではその意義が半減するのかもしれない。常に企業の関連する分野の最新情報について言及するのがよさそうだ(もちろん最新の話題以外にも論点はあるはずだが)。

まぁ、SEOは流行なわけだが、そういうことをウェブ制作の要素とする会社は個人的にはあんまり信用していない。技術の裏打ちもないのに、立派なことを言う会社も多いから。自分で運営しているサイトで、とあるキーワードで1位をとっているウェブサイトがある。ページ数こそ多いが、コンテンツ的には何の面白みもないサイトなんだけどね。

趣味として遊ぶには面白い要素だね。

SQLiteのインデックス

2009/11/08 | SQLite

普段SQLiteに触れる際はFireFoxのプラグイン「SQLite Manager」を使っている。以前はウェブベースで操作できる「SQLiteManager」(って同じ名前かよ)を使っていた。理由はSQLite2を取り扱うことができたから。あと、仕事で使ってみて、実際に稼動させてしまった環境で使うのに、ダウンロードやら何やらしている間にデータの欠損ができると嫌だったのでダイレクトに処理できるウェブベースな環境がよかったのだが・・・。今となってはSQLiteで納品する可能性はかなり低いし、PHP5な環境が一般的になりSQLite3だけ対応できていればいい。そしてローカルな環境でさえ動けばいい。そういう理由でプラグイン版を使用している。

でもSQLiteを使いこなすにはまだまだ初心者なのでいろいろとわからないことが多い(いや、SQLiteに限らずPHPもデータベース全般に対してもまだまだひよっこであるのだが)。SQLiteのインデックスのことがよくわからない。というかこれってFireFoxのプラグインの機能でインデックスを作成しようとするのが悪いのか(特殊なのか)、いったいどうすればよいのやら。

通常インデックスって「CREATE INDEX …」の構文で作成すればよいはず。ウェブで調べてもSQLiteも同様の書式で作成できると書いてある。実際にそのコマンドでインデックスができることも確認している。

FireFoxのプラグインで作ろうとすると、使用カラムを選択する際に「Ascending」か「Descending」を選ぶことになっている。この意味がわからない。並べ替えのために同じカラムに対して二つのインデックスを作成しなくてはいけないのか、それともまた別の意味なのか。

実際のところ、最大でも1000件くらいのデータしか投入しない予定なので、それほど問題にはならないのだが、イマイチすっきりしない。暇ができたら調べてみようと思うのだが・・・。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net