Login
  Days of Liris

2005/08/24

読み返してみると・・・

Tag: dev
Unix Magazineの自分の書いた記事を読み返してみると、うーむ、よくわからん。難しいです。ほとぼり(一月後)がさめたころにいろいろ書き足したすつもりなんですが。。。本当はソースコードの解説とか書くはずだったんですが、どうでもよいソースコードしか解説していないし。。。

それはよいとして、今後書き足すのは、(自分のメモ)
1. DHTによるトラッカーの発見
2. トラッカーのクラスタリングみたいなこと
3. CMF BitTorrent Tracker(なんじゃこりゃ)

うーむ、1、2はいいとして、3は、世の中には物好きがいるものです。BitTorrentはトラッカーがボトルネックになるのに、なんでわざわざZope上においてさらにボトルネックかせにゃならんのだ!と思ったりしますが、それはそれとして、変な物好きとしてはとりあえず、やってみました(やってみます)というのは好きです。

いや、Unix Magazineはどうでもよくって、CMF BitTorrent Trackerについて触れてみたかっただけです。

奇妙なDB

Tag: dev
今日、久しぶりにPostgresのデータベースを作りました。自分でPostgresをセットアップするのは多分、5年ぶりぐらいです。家ではMySQLしかつかっていないし、仕事ではPostgresも使いますが、設定は誰かにやってもらっているので、ずっとやっていませんでした。今回は自分のノートPCにセットアップしたので、誰かにやってもらう訳にはいきませんでした。といってもやったことは、本を引っ張り出してきて、ユーザとデータベースの作り方を調べただけですが。それ以外の操作は大体いつもやってきたし、セキュリティは開発環境なので、いい加減でもよいし。

さて、データベースついでですが、仕事柄、いろいろな製品を見たりすることがあります。まあ、機能的な所はさておき、ディレクトリ構成だとか、データベースのスキーマだとか、見なくてもいいところ、いや見ない方がよいところも見たりします。半年前見たデータベーススキーマは、たとえば、hoge_0,hoge_1,...hoge_9というhoge_で始まるテーブルが10個あります。最初にidのフィールドがあって数字が入ります。まあ、プライマリキーになっています。でも、なぜ10個も似たようなテーブルがあるのかな?と思って動作を見ていると、idの最後の一桁の数字によって保存するテーブルを変えています。おー、すげー。初めてそのような設計をみました。とうぜん、idは自分で管理しないと行けないので、hoge_idのようなテーブルがあって、そこに最後に登録したidを保存しています。うむむむむ。なかなかの発想です。その製品は僕の会社より歴史があるので、過去のいろいろな制約のせいかもしれません。
さらにテーブルを見てみると、fuga_200508とか、fuga_200507とか言うテーブルがあります。推察するにテーブルの最後の6けたは西暦と月のようです。で、数ヵ月使っていると、テーブルが増えていきます。おー、プログラムが勝手に月ごとにテーブルを作っている!僕が作るとfugaというテーブル一つだけにして、その中で日付を持たせてselectするんですが、僕は常識にとらわれすぎていました。反省しないといけません。
もっと見てみると、フィールドにdatetimeとかは使用せずに日付を持っている所は全てstringです。まあ、これはよく見るので、どうということはありません。プログラムの中で表示するときにstringをdateにして、フォーマットし直しているかどうかは分かりません。多分、そうしている感じがします。

まあ、データベース設計は難しいということで。。。
ちなみに僕がセットアップしたpostgresは動いていますが、tomcatとか、開発環境と連動するとか、いろいろ先は長いかも。