ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「バカロボカップ2007」開催、審査委員は、明和電機の土佐信道氏

2007-08-17 21:29:06 | Weblog

ここのニュース
吉本興業、笑えるロボットコンテスト「バカロボカップ2007」開催
http://plusd.itmedia.co.jp/lifestyle/articles/0708/13/news051.html

によると(以下斜体は上記サイトより引用)

 吉本興業は、世界初の笑えるロボットコンテスト「バカロボカップ2007」を開催する。書類・動画選考で選ばれた8組のバカロボが、11月に新宿「ルミネtheよしもと」で「ステージ公開ライブ決戦」(公開審査)を行う予定だ。


で、そんなことはどーでもよくて、問題は

審査委員は、明和電機の土佐信道氏、


おおおお、明和電機、なつかしい(^^)
生きておったか(^^;)
相変わらず、活躍しているんだろうか・・楽器??で・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JavaのURLエンコード、デコード

2007-08-17 17:53:02 | Weblog

 たいした話ではないです。あくまでも、忘れないように、自分へのメモ。

 サーブレットの場合、URLエンコード、デコードはrequest.getParameter()でやるので問題ないといえばないんだけど、getParameter()をつかわず、

ServletInputStream si = request.getInputStream();

という形で、InputStreamでとってきてしまった場合、エンコードはされていない。

 これ以外でも、URLエンコードしたいとき、デコードしなくちゃなんないときというのがある。

 そーいったときの、Javaでのエンコード、デコードの方法。



 java.net.URLDecoderでデコード、URLEncoderでエンコードする。
 なので、それらをimport

import java.net.URLDecoder;
import java.net.URLEncoder;


 が必要になる。

 で、エンコードしたい場合は、

String encodeStr = URLEncoder.encode(str,"utf-8");

 でstrを、URLエンコード(%がつくやつ)して、encodeStrにいれる。
 (encode(),decode()は、staticなメソッド)

 URLエンコードされたもの(%16進のやつ)を、デコードしてUTF-8の文字列にしたい場合は、

String Str = URLDecoder.decode(encodeStr,"utf-8");

 でURLエンコードされたencodeStrを、文字列strにいれる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

履歴など過去のデータがテーブルにあると、他テーブルのレコードが削除できないケース。

2007-08-17 14:07:16 | Weblog

 たとえば、発注データなど、発注を終わって、納品しても、ある程度ずーっと保存しておくデータ、つまり、履歴的にたまっていくデータにおいて、
 他テーブルを参照しているところ、たとえば、商品や、発注先、担当者など、主キーだけはいっていて、他テーブルを参照している形になっていると思うのですが、こういうところは、ちょっとこまったところがあります。

 たとえば、発注伝票に担当者が入っているとき、担当者の社員コードだけを入れて、社員名などは入っていない、というのが、第二正規形に沿った方針です。
 でも、こうなると、担当者を削除できません。

・発注伝票は、税務上、何年間か保存しないといけないかもしれません。
・でも、最近、1,2年で会社を辞める人なんて、山のようにいます
   →っていうのはいいすぎ?でも、いるでしょ・・
・そーすると、「やめたから削除!」ってしてしまうと、
・発注伝票の担当者に、やめた社員のコードが入っていたら・・
   →削除されているので見つかりません。空欄です(>_<!)

 参照制約をかけていると、そもそも削除できません
(って、じゃあ、参照制約はずせばいいじゃん。って、そーいう問題じゃないよ、空欄になることには変わりなくって、そこが問題なのだから・・)




 対応としては2つ。

・従業員が辞めたら、削除フラグを入れる。
 やめた場合には、削除フラグON
 そうすれば、レコードは削除されていないので、
 上記のような問題は起きない
  →けど、じゃあ、削除フラグONになったものは、どこで削除するの?
   っていうのを考える必要がある。

・正規化を崩し、上記のケースでは、担当者名も、発注レコードにいれておく。
 =当時の担当者名ということで。。
 ただ、こうすると、DB自体は、冗長になる。
 が、検索でJOINする必要がなくなるので、検索は早くなる。

どっちがいいとは、一概には言えないので、場合によってだけど、
履歴もので、JOINが多い場合は、後者のほうが、有利かな?



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする