« [.NET] Slick Code Search : HDD 内のソースコードを検索するツール | トップページ | [NEWS] 「名ばかり管理職」対策 ようやく厚労省動く »

2008年4月 8日 (火)

Re: DBわからん、 やっぱわからん

επιστημη氏曰く…

DBわからん、やっぱわからん

class 部品; // 森羅万象のルート
class 基板 : 部品; // 基板(部品の集合)もまた部品なり
class 抵抗 : 部品; // 抵抗値をメンバに持つ
class コンデンサ : 部品; // キャパシタンスをメンバに持つ
class コイル : 部品; // インダクタンスをメンバに持つ

こんなカンジのクラス群。これのインスタンスを使って:

製品 は 基板1 から構成される
基板1 は 抵抗1, 抵抗2, 基板2, 基板3  から構成される
基板2 は 抵抗3, コイル1 から構成される
基板3 は コイル2, コンデンサ1 から構成される

なんてな木構造を構築するっす。
で、こいつをDBに書いたり/DBから読んだり せぇと。

でもさ、部品の種類によって必要となるフィールドの名前と型が多岐にわたり、さらに将来どんな部品が追加されるか予測できないとした場合、あらかじめ全部品を想定した部品マスタのスキーマが起こせないんちゃいます? そんときゃどーすんです?

<Amazon> アナリシスパターン マーチン・ファウラーのアナリシスパターンに出てくる、 知識レベルと操作レベルを分ける話が、 ひょっとすると近いのかもしれません f(^^;

επιστημηさんとこのコメントにも書いたんだけど、 ちぃと修正を入れて、 こっちにも。

◆ 知識レベル
・部品型テーブル
 部品型
 -----
 基板
 抵抗
 コンデンサ
 コイル

・部品特性型テーブル
 部品特性型
 -------
 タテ
 ヨコ
 抵抗値
 静電容量
 インダクタンス

・特性単位テーブル
 特性単位
 ----
 mm
 Ω
 F
 H

・部品-部品特性テーブル
 部品型   部品特性型 特性単位
 ----- ----- ----
 基板    タテ    mm
 基板    ヨコ    mm
 抵抗    抵抗値   Ω

※実際には、それぞれ ID 列も持つ。

こうやって知識レベルを分離しておくことで、 将来、 部品の種類が増えたり、 部品の特性 ( 属性 ) が増えたりしたときに、 テーブル自体の構造は変更しなくて済む ( たぶん f(^^; ) というわけです。
# 部品の種類が増えた、 特性が増えた = 知識 ( の内容 ) が変わった …っていうわけです。

◆操作レべル
 ・製品テーブル
 製品ID 構成ID
 --- ---
  0   1

 ・部品構成テーブル
 構成ID 部品ID 数量 親ID *備考
 --- --- -- --
  1   11    1  NULL *基板1
  2   12    1  1    *基板2
  3   13    3  2    *抵抗1
  4   14    2  1    *抵抗2、基板1に乗る
  5   14    5  2    *抵抗2、基板2に乗る

 ・部品テーブル
 部品ID 部品型 呼称
 --- --- ---
 11   基板  基板1
 12   基板  基板2
 13   抵抗  抵抗1
 14   抵抗  抵抗2

 ・部品特性テーブル
 特性ID 部品ID 部品特性型 値  特性単位
 --- --- ----- -- ----
 21   13   抵抗値    120 Ω
 22   14   抵抗値    250 Ω
 23   12   タテ     300 mm
 24   12   ヨコ     450 mm

※ こんなん実装したらレスポンスがどうなっちゃうか怖くて、試してみたことないんですけどね f(^^;

で、 こんなんだと、 継承/委譲/多態モロモロを駆使して作ったクラスのモデルとは、 相当に違っちゃうと思われるわけで。 そのへんは、 やっぱりマッパークラスをひぃこら作って噛ますことになるんでしょうね。

<Amazon> エンタープライズ アプリケーションアーキテクチャパターン ※ O-R マッピングのいろんなパターンも、 マーチン・ファウラーのエンタープライズ アプリケーションアーキテクチャパターンに、 いっぱい出てきます。

|

« [.NET] Slick Code Search : HDD 内のソースコードを検索するツール | トップページ | [NEWS] 「名ばかり管理職」対策 ようやく厚労省動く »

プログラミング」カテゴリの記事

-プログラミング ( わんくま )」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/40819305

この記事へのトラックバック一覧です: Re: DBわからん、 やっぱわからん:

» 来週末は名古屋勉強会ですよ。 [中の技術日誌ブログ]
来週末は名古屋勉強会ですよ。 [続きを読む]

受信: 2008年4月16日 (水) 00時03分

» 4/26 は... [とっちゃん's Blog]
4/26 は... [続きを読む]

受信: 2008年4月19日 (土) 19時36分

« [.NET] Slick Code Search : HDD 内のソースコードを検索するツール | トップページ | [NEWS] 「名ばかり管理職」対策 ようやく厚労省動く »