frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

トランザクショントークンもどき。

こんばんは。

UFOは何度か見ました、あに山です。

やったー!

一応一山越えたぞー!(T_T)/

って訳で、でかい課題を終わらせました。

昨日の日記に書いたランダム文字列生成もつっこんで、

トランザクショントークンもどきも

一応動作したみたいですよ(^^)

(↑って、口調が他人事(笑))

おまけ。

DBDesigner

ER図書くのに良いようなんで。

Dia

ER図書くのに良いようなんで。たぶん。

WEB+DB PRESS vol.5 の

「さわって実感リレーショナルデータベース設計」に載ってた。

説明力強化塾 - いつ、どうやってビジュアライズするか

ER図がすこしばかし載っとります。

Clay データーベース・モデリング・プラグイン

ER図を書くのに(しつこいですが)良いようなんで、

このEclipseプラグインを入れてみた次第。

だけどなんかなぁ。イマイチなんだよなぁ。

CREATE文とか発行してくれるのは有難いんだけど。

漢字虫眼鏡

小学生の時、漢字テストで0点取りました(笑)

漢字は苦手なんで、こーゆーの有難いです。

毎日見ているデイリーポータルZで知りました。

トランザクショントークンもどき…とは簡単な話で、

サーブレットの方で…

String uniqKey = RandomStringUtils.randomAlphanumeric(10);

request.getSession().setAttribute("uniqKey", uniqKey);

…なんてランダム文字列をセッションに入れておいて。

それを受け取ったJSP側で…

<input type="hidden" name="uniqKey" value="${uniqKey}" />

※EL式を使用してます↑

…などと書いておくと、次回Submitボタン押した時

サーブレットで…

String uniqKey = request.getParameter("uniqKey");

…とかって、そのフォームのパラメータを受け取れる、と。

そこに加えて、セッションにもあるキーを取ってきて…

String uniqKeyInSession = request.getSession().getAttribute("uniqKey");

…これとさっきのパラメータを比較し、

同じだったら実行、違ってたらスルーって話。

if (uniqKey.equal(uniqKeyInSession)) {

// 実行内容

} else {

// スルーなり、二重押し忠告アナウンス設定するなり

}

// ここでまた新たなランダム文字列をセッションにセットする

私はこれに加えて、リクエストを受け取った時刻もセッションに入れておいて、

次回のリクエスト時に、現在時刻と比較し

あまりにも時間が経ってなかった場合も、スルーして

二重押し防止しまくってます。

さて。

そんな訳で、お次の課題です。

この学校の良い所は、

途中までは皆同じ課題をこなすんだけど、

今回終わらせた課題の後は、

それぞれの研究したい方向に勉強させてくれるのでありまして。

私は何を選択したかって?

いや、そりゃバリバリ苦手意識持ってるSQLのお勉強です(^^;

かくして、先生の用意してくださった本と課題項目を

コツコツ作業して、2日で終わる内容の70%程終えました。

今は与えられた架空の状況に対して、

DBのテーブル設計やって、それ用のDAOクラス作ってるところです。

そのところで初めて、

第3正規化とER図って言葉が出てきて調べているのですが。

前者は理解したけど、後者を書くのが難しい。

なんつーか、どのテーブルを基準にするのか次第で

1対多とかの関係が逆になったりするんじゃないかと。

うーん、そこがイマイチ理解できてませんねぇ。

テーブル設計自体は終わったんだけどねぇ。

そこからさらにDAOの実装をしようとすると

VOの設計で少々問題が起きて、悩み中。

って事は、正規化が実はうまくいってないんじゃないかと思ったり。

結構手強いもんだねぇ…。