Re: DBわからん、 やっぱわからん
επιστημη氏曰く…
class 部品; // 森羅万象のルート
class 基板 : 部品; // 基板(部品の集合)もまた部品なり
class 抵抗 : 部品; // 抵抗値をメンバに持つ
class コンデンサ : 部品; // キャパシタンスをメンバに持つ
class コイル : 部品; // インダクタンスをメンバに持つこんなカンジのクラス群。これのインスタンスを使って:
製品 は 基板1 から構成される
基板1 は 抵抗1, 抵抗2, 基板2, 基板3 から構成される
基板2 は 抵抗3, コイル1 から構成される
基板3 は コイル2, コンデンサ1 から構成されるなんてな木構造を構築するっす。
で、こいつをDBに書いたり/DBから読んだり せぇと。
でもさ、部品の種類によって必要となるフィールドの名前と型が多岐にわたり、さらに将来どんな部品が追加されるか予測できないとした場合、あらかじめ全部品を想定した部品マスタのスキーマが起こせないんちゃいます? そんときゃどーすんです?
マーチン・ファウラーのアナリシスパターンに出てくる、 知識レベルと操作レベルを分ける話が、 ひょっとすると近いのかもしれません 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(^^;
で、 こんなんだと、 継承/委譲/多態モロモロを駆使して作ったクラスのモデルとは、 相当に違っちゃうと思われるわけで。 そのへんは、 やっぱりマッパークラスをひぃこら作って噛ますことになるんでしょうね。
※ O-R マッピングのいろんなパターンも、 マーチン・ファウラーのエンタープライズ アプリケーションアーキテクチャパターンに、 いっぱい出てきます。
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
「-プログラミング ( わんくま )」カテゴリの記事
- [わんくま名古屋] 第21回: Metro サンプルコード解説 (1/3)(2012.04.15)
- [わんくま名古屋] 第21回は 4月 14日 - Windows 8 Metro をやるよ~♪(2012.04.12)
- [わんくま東京] 第59回の資料を公開しました(2011.06.02)
- [わんくま東京] 第59回は 5月 28日 - 名古屋から侵略します♪(2011.05.23)
- [わんくま名古屋] 第17回は 4月 9日 - TDD ネタで喋ります(2011.04.03)
この記事へのコメントは終了しました。
コメント