- - PR -
汎用テーブルについて!
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-23 15:53
〜マスタテーブルを沢山作成するのが手間だからと言って
一まとめにして汎用テーブルとして運用するという考え方ってどうなのでしょうか? テーブルを作成するにあたってカラム名などは意味を持たせて作成するのが基本だと思うのですが、汎用テーブルに汎用カラム、例えば「予備1」「予備2」‥を作成してしまうDB設計の発想はよろしいのでしょうか? 教えて下さい。お願いします。 上記の考えは私の考えではありません。私は必要なマスタは必要なのだから、多くて手間が掛ったとしても作成する必要があると思います。 | ||||
|
投稿日時: 2008-04-23 16:43
個別にマスタテーブルを持ったほうがよいと思います。
その方が明示的でわかりやすいと思うのですが? データモデリングの理解にとぼしい人なのかも 汎用カラムについては、ワークテーブルを除けば、作成する理由もありません | ||||
|
投稿日時: 2008-04-23 16:48
面白い考えですね。いや、以前私も同様の事を考えた事があったのですよ。
私の場合は(よく覚えていませんが)テーブルマスタ、カラムマスタ、コンテンツマスタ、というような感じの構成にしてそれぞれのマスタに外部キーを設定してくっつけて・・・ 結局、面倒だからすでにくっつけた後のviewを作って・・・ って、よく考えたら普通にマスタ作った方が早くね?という事になって止めてしまいましたが。 というか、たぶんシステムテーブルを覗いてみるとそういう仕組みが出来ているのではないでしょうか? | ||||
|
投稿日時: 2008-04-23 17:04
設計という観点から見れば、ダメでしょう。 運用という観点から見れば、アリかもしれません。たとえば、OR マッピングなどを使っていると、DB のテーブル定義を変えたら、ソースコードもコンパイルし直しになってしまいますが、システム運用開始から何年も経ってからDBのテーブル追加ならまだしも、ソースコードのコンパイルなどできる人間が居ないかもしれません。 OR マッピングは極端な例かもしれませんが、コンパイルは避けたい、テーブル追加は避けたい、列追加は避けたい、というのは運用時の要求としてはあるでしょう。 しかし、これは、あくまでも人の観点から見た場合の話です。プログラムはプログラム、人は人、ですので、どっちを重視するかしだいです。 | ||||
|
投稿日時: 2008-04-29 12:47
■汎用テーブル:
コードと名前とフラグ数個を持つような、用途は異なるが構造は殆ど同じマスタについては、汎用テーブルにすればマスタメンテ画面が1つで済みます。エンドユーザが直接メンテナンスするようなマスタはこの方がよいのではないでしょうか。(似たようなメンテ画面を何個も作らせろなんていったらお客さんにシバかれます)。 逆にシステム内部の制御用でメンテ画面が不要なテーブルなら個別に作成した方がよいように思います。 ■汎用カラム: パッケージを開発するなら避けて通れないのではないでしょうか。もちろん最初は未使用ですが。 OracleEBSのDFFみたいなもんですね。 |
1