2006/10/29(日)[メモ] URLで使用可能な文字数

RFC 2616 HTTP/1.1にはURLの長さに関する規定はないが、IEではURLに使用可能な文字数は2,083文字とされている。
日本語をURLに変換すると日本語1文字あたり6文字分使用されてしまう為、実際は日本語300文字程度しかGETメソッドで渡せないことになる。

ちなみにFirefoxなどの他のブラウザがどのように規定されているか不明。

2006/10/29(日)変数名の付け方

今作っているPHPプログラムから抜粋

$sql_get_category_list = "select CategoryName from category order by CategoryName asc;";
$category_list_result = mysql_query($sql_get_category_list);
if (!$category_list_result) { 
	echo "カテゴリ一覧が取得できません";
	exit;
}
	else {
$i = 0;
while( $i < mysql_num_rows($category_list_result) ) {
$category_list[$i] = mysql_result($category_list_result, $i);
$category_split_list[$i] = mb_split("::",$category_list[$i]);
	}
$i++;
}

PHPでは$○○で変数を表しますが、後でソースを読んだときに意味が解りやすい変数名を付けるとやたらと長くなってしまいます。
どのように変数名を付ければエレガントなプログラムになるのでしょうか?

2006/10/24(火)PHPなプログラミングメモ

PHPでサイトを作っているけど参考にしている本が古すぎるため(PHP4の初期)、要らない苦労をし続けている気が…。

はまったとこのメモ

実行中のスクリプトのパス

$PHP_SELF -> $_SERVER['PHP_SELF']

MySQLサーバに接続

mysql_connect($db_host, $db_user, $db_passwd);

DB選択

mysql_select_db($db_name);

POSTメソッドでのデータの受け渡し

$hogehoge -> $_POST['hogehoge']

2006/08/18(金)曲管理のためのWebアプリケーション::DB検討中2

前回のコメントからデータベーススキーマを再検討。

DB構造

Table:Track

個別トラックの情報を記録するためのテーブル

TrackIDPrimary Key
TrackName曲タイトル
TrackYomi曲タイトルよみ
TrackNoアルバムの中のトラックナンバー
ArtistIDアーティストID
WriterID作詞者ID
ComposerID作曲者ID
Arranger編曲者ID
AlbumIDアルバムID
GenreIDジャンルID
Time曲時間
Rating曲の評価
Commentコメント

Table:Album

アルバム全体の情報を記録するためのテーブル

AlbumIDPrimary Key
AlbumNameアルバム名
AlbumYomiアルバム名よみ
DiscNoアルバム中の何枚目か
DiskTypeIDディスクタイプID
ArtistIDアーティストID
ReleaseDateリリース日
SPEC規格品番
TotalTrackアルバムのトラック総数
TotalTimeアルバムの全時間
Commentコメント
asinAmazonとの連携*1

Table:Artist

アーティスト情報を記録するためのテーブル

ArtistIDPrimary Key
ArtistNameアーティスト名
ArtistYomiアーティスト名よみ
Parent親となるアーティストID
AliasIDアーティスト名のエイリアス
URIオフィシャルサイトURI
Commentコメント

Table:DiskType

8cmシングルとかベストアルバムとかのディスク種別を記録するためのテーブル

DiskTypeIDPrimary Key
DiskTypeディスクタイプ

Table:GenreID

J-POPとかのジャンル情報を記録するためのテーブル

GenreIDPrimary Key
Genreジャンル

Table:Alias

AliasIDPrimary Key
AliasアーティストIDを指定

作詞、作曲、編曲者のデータベースはアーティストテーブルを使用するつもり。

アーティストの主従関係は、親となるアーティストを指定。
例えば、ave;new feat. 佐倉沙織だと「ave;new」と「佐倉沙織」を指定するといった感じ。

アーティストのエイリアスは別途エイリアステーブルを使用する。
エイリアスで指定された場合、異なる名称でも同格であるとする。

あと、今考えているのはマルチユーザーにより情報の追加・補完が可能なようにするというのを考えている。
CDDB機能については、他のCDDBサーバからのインポートの他、CDDBサーバとしても使用できるようにしたいなぁ。

*1 : 将来的に画像表示などができればいいなぁ