« AOPの実装 | メイン | Transfer の設定 »

Transfer

いよいよ、Transfer だ。
ちょうど、Transfer 1.0 RC がリリースされたようだ。
気になったのは、この2点。

 ・Composite Key Support
 ・Transaction Support

Composite Key ってなんぞや?
今まで、データベースの主キーとして、カラム一つしか指定できなかったっぽいのが、複数のカラムが指定できるようになったということなのだろうか?
どうやら、複数のカラムが指定できるようになったらしい。が、項目として指定できるのは、1つのみで、あとは、外部参照の項目を指定することのようだ。
基本的に正規化してテーブル設計すれば、問題はなさそうだけど、大丈夫なんだろうか。
古いシステムのテーブル設計によく見られる、4つとか、5つとかの項目からなる主キー設定で、なおかつ、
正規化してある訳じゃないテーブルには、使えないということか。

いよいよ、Transfer を読み解いていくことになるわけだが、まずは、データベースを作らなければいけない。
データベースは、環境に非常に影響を受けるので、著しく汎用性が落ちてしまうのが困りものだけど、仕方ない。

とりあえず、慣れている PostgreSQL で作成する。
バージョンは、8.1 だ。

table_01.gif

各テーブルの意味は、そのまんまだから、わかるだろう。
ちなみに、SERIAL 型というのは、データ挿入でオートインクリメントしてくれる INT 型。

データベース作成

createdb -E UNICODE SHOPPING

テーブル作成

CREATE TABLE public.CATEGORYMST (
categoryid INT NOT NULL
, categoryname TEXT NOT NULL
, PRIMARY KEY (categoryid)
);

CREATE TABLE public.ITEMMST (
itemid SERIAL NOT NULL
, lnkcategoryid INT NOT NULL
, itemname TEXT NOT NULL
, price INT NOT NULL
, PRIMARY KEY (itemid)
);

CREATE TABLE public.CARTDATA (
sessionid CHAR(32) NOT NULL
, lnkitemid INT NOT NULL
, categoryname TEXT NOT NULL
, itemname TEXT NOT NULL
, price INT NOT NULL
, PRIMARY KEY (sessionid, itemid)
);

データ登録

INSERT INTO CATEGORYMST (categoryid, categoryname) VALUES (1, 'マウス');
INSERT INTO CATEGORYMST (categoryid, categoryname) VALUES (2, 'キーボード');

INSERT INTO ITEMMST (itemid, lnkcategoryid, itemname, price) VALUES (1, 1, '光学式マウス', 2600);
INSERT INTO ITEMMST (itemid, lnkcategoryid, itemname, price) VALUES (2, 1, 'ボールマウス', 1100);
INSERT INTO ITEMMST (itemid, lnkcategoryid, itemname, price) VALUES (3, 1, 'レーザー式マウス', 4800);
INSERT INTO ITEMMST (itemid, categoryid, itemname, price) VALUES (4, 2, 'テンキー付きUSBキーボード', 1800);
INSERT INTO ITEMMST (itemid, lnkcategoryid, itemname, price) VALUES (5, 2, 'テンキーなしUSBキーボード', 1200);
INSERT INTO ITEMMST (itemid, lnkcategoryid, itemname, price) VALUES (6, 2, 'テンキー付きPS/2キーボード', 1100);
INSERT INTO ITEMMST (itemid, lnkcategoryid, itemname, price) VALUES (7, 2, 'テンキーなしPS/2キーボード', 900);
SELECT SETVAL('ITEMMST_itemid_seq', MAX(itemid)) FROM ITEMMST;

これで、データベースの準備はできた。次は、Transfer の設定だ。

トラックバック

このエントリーのトラックバックURL:
http://www.schwarzmond.info/mt/mt-tb.cgi/53

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年05月02日 17:31に投稿されたエントリーのページです。

ひとつ前の投稿は「AOPの実装」です。

次の投稿は「Transfer の設定」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。