カメラメーカーの再編,フィルムカメラ事業の縮小が止まらない。

 ニコンはフィルムカメラ事業を縮小し,デジタルカメラにリソースを集中する。コニカミノルタはカメラ事業およびフォト事業を終え,デジタル一眼の資産の一部をソニーに譲渡する。αマウントシステム準拠の新商品をソニーが発売するようだ。ペンタックスは韓国サムスンとデジタル一眼を共同開発するという。中盤カメラの雄マミヤもカメラ事業から撤退する。富士フィルムは銀塩文化を守るというが,カメラのデフォルトはデジタルにシフトする。フィルムカメラが子供のころの憧れだった世代としては寂しいが,もうしばらくすると「そういえば昔,フィルムってあったよな」などと言われるようになるのだろう。

 そんな中,こうしろうの写真部はクラッシックカメラや中古カメラをコツコツと揃えているようだ。高校の写真部のように暗室がある場合は,自前で現像するという写すだけでないプラスαの楽しみがあるので,フィルムが使い続けられるかもしれない。もっともこうしろうの高校の暗室は物理準備室らしいが。

 さて,話しはころっと変わる。こうしろうはプロジェクトウィルカ著「Eclipse3 + Visual EditorによるJavaプログラミング」でJavaを勉強してきた。部活や生徒会や,そして,それらの暇なときにする勉強で忙しかったせいか,この本一冊の内容をトレースするのに半年近くかかってしまった。

 本のサンプルをまねて,データベースに情報を登録,検索するGUIアプリを作ってみようと決めたお題が「カメラ台帳」である。

 Visual EditorでGUIをさっそく作っていきたいところだが,まずデータを収めるデータベースを作成しなくてはならない。こうしろうはずっと以前にノートPCにインストールしたMySQL5.0サーバーをサービスから起動した。

 次にデータベースを作成するために,MySQL5.0のCommand Line Clientを起動するが,rootユーザーのパスワードを思い出さない。長い間使っていないので,パスワードを忘れてしまっているのだ。

 実は私も忘れていた。私のPCには,MySQL4.0,MySQL4.1,MySQL5.0と三つのバージョンをインストールしてあるので,どれに何を設定したのか混乱してしまったのだ。それでも,何とかこうしろうがパスワードを思い出す前にログインできた。

 こうしろうは,JavaDriveの解説を参考にテーブルを設計する。デーベース名はcamera,データベースユーザーはcameraman。ベタである。テーブル名をmodel_tableとして,以下の項目の名称と型を決めた。

ID id INT
機種名 model_name VARCHAR(40)
メーカーID(メーカー数は約20社) maker_id SMALLINT
タイプ(タイプはラジオボタンで選択 デジカメ,フィルム,インスタント,その他) type_id TINYINT
所有者 owner VARCHAR(20)
購入日 buy_date DATE

 やっぱり,タイプの最初に来るのはデジカメなのだ。メーカーは20社ぐらいと想定して別テーブルにメーカー名を記録する。クラッシックや中古カメラのメーカーの方が多いのかもしれない。ペトリカメラ,栗林写真機工業製(第218話参照)なんてのも入力しないといけないから,ラジオボタンで選択というわけにはいかない。
maker_table
メーカーID maker_id SMALLINT
メーカー名 maker_name VARCHAR(40)

 テーブルの作成はcreate database camera;とコマンドを打ち込み,grant文で次のようにユーザーcameraman を作成,camera データベースの全権(all privileges)を与える。
----------------------------------------------------------

grant all privileges on camera.* to 
   cameraman@localhost identified by 'cameraman';

----------------------------------------------------------
 テーブルの作成はいつものごとく,テキストファイルにSQL文を記述し,sourceコマンドでファイル名を指定して流しこむ。
----------------------------------------------------------

use camera;
drop table if exists model_table;
create table model_table(
 id int unsigned auto_increment primary key,
 model_name varchar(40) not null,
 maker_id smallint not null,
 type_id tinyint not null,
 owner varchar(20) null,
 buy_date date null
) type=InnoDB;

----------------------------------------------------------
トランザクション処理も使ってみたいので,タイプにはInnoDBを指定した。

 次回はGUIを作成する予定だ。