テーブルの分類について

0
Satoshi Noto @n3104

@_taketake お久しぶりっす。ちょっとお聞きしたいのですが、テーブルがマスターなのかトランザクションなのかはどういう基準で判定するものなのでしょうか。正規化で外出しするものがマスターなのかなぁみたいな話をしてました。

2011-06-03 11:52:23
Satoshi Noto @n3104

その修正が複数のレコードに波及するものがマスター、、、なのかな。どこかに定義とかあったりしないのかな。

2011-06-03 13:01:14
TAKE^2 @_taketake

@n3104 すんません。今ごろ見ました。2種類に分けちゃうのって難しいかもです。例えば、宿泊予約サイトなんかだと、サイト運営者、宿泊施設、エンドユーザーという登場人物がいるわけで、エンドユーザーのマスタは宿泊施設のトランザクションとも考えられるし、サイト運営者の(続く)

2011-06-13 23:12:55
TAKE^2 @_taketake

@n3104 (続き)トランザクションは宿泊施設のマスタとも考えられるわけで。2つの登場人物しか居なかったときの名残といってもいいのかなと思っています。マスターとトランザクションって。下の登場人物が発生させたデータがトランザクション。上の登場人物が発生させたデータがマスタみたいな

2011-06-13 23:20:31
TAKE^2 @_taketake

@n3104 (続き)自処理が受け付ける入力の他にDBから取ってくるデータがマスタ、発生させたデータがトランザクション…ともいいづらいな。まあ、そういった分け方でデータを分けるのは今は難しい気がします。

2011-06-13 23:33:28
Satoshi Noto @n3104

@_taketake レスありがとうございます!よくテーブルをマスタとトランザクションで分けてテーブル目にプレフィックスつけたりすると思うんですが、その際の仕訳ルールは何を基準にしているのか知りたかったです。

2011-06-13 23:39:50
Satoshi Noto @n3104

@_taketake 視点によってマスタとトランザクションの定義が変わるのであれば、アプリケーションの性質から関係者で話して決める感じでしょうか。そうすると、マスタとトランザクションというプレフィックスをつけておく嬉しさってどの辺にあるのか悩んでました。

2011-06-13 23:41:28
TAKE^2 @_taketake

@n3104 自分の場合はプレフィックスつけるときはもっと細分化して、より業務寄りにつけてしまいます。某大統領のやつもそうしてました。

2011-06-13 23:42:24
Satoshi Noto @n3104

@_taketake 某大統領のやつは実はあんまり覚えてませんw どちらかというと機能一覧の大分類ぐらいにマッピングさせて区分けしてく感じでしたっけ?主として利用する機能をオーナーとして紐付けるような感じ。そうすると、機能とのマッピングが分かって嬉しいですものね。

2011-06-13 23:44:24
TAKE^2 @_taketake

@n3104 ちょっと話はそれますが、自分がプレフィックスをつけるときのうれしさというものを考えるとすると、同じ類のものに同じプレフィックスが付いていると開発中などに同じ類のものを一括処理しやすいという観点で付けています。 プログラムする人側のことはあんまり考えていなかったり(汗

2011-06-13 23:48:07
Satoshi Noto @n3104

@_taketake いえいえ、同じ類のものをまとめるというのはプログラムする側でも同じ視点だと思います。個人的に気になったのが、何らかの規則性があると誰でも判断できるし、可読性、保守性もあがってよいと思っていて、その規則性ってなんだったけ?という疑問がわいた感じです。

2011-06-13 23:51:52
TAKE^2 @_taketake

@n3104 某大統領のやつは、まず施設ありきでその下をリアルとネットで分けてその中に部屋やプランなんかがぶら下がっていました。 具体的には施設、リ部屋、ネ部屋、リプラン、ネプラン、リ在庫、ネ在庫、予約って感じにプレフィックスは分けていたと思います。

2011-06-13 23:52:30
TAKE^2 @_taketake

@n3104 あー、ちなみにその疑問というか規則性は僕も未だに疑問ですw 立ち位置や人によって呼び名やプレフィックスのつけ方などは変わってしまうと思います。なので自分の場合は、DB設計規約とかで分け方をプロジェクト毎に定義しています。面倒ですし規則性はないですが。

2011-06-13 23:54:48
Satoshi Noto @n3104

@_taketake おお!そんな分類だったんですね。あー、これだと機能ではなくデータの観点からですよね。確かに機能よりはデータは変わりにくいので、DOAじゃないですけど機能の視点から分類するのは筋が良くないのかもしれませんね。

2011-06-13 23:55:01
Satoshi Noto @n3104

@_taketake その規約の作り方が知りたいですw 視点によって分類が変わる以上、毎回考える必要があるということですね。あとは、分類があると何が嬉しいのか、なぜ分類しておくのかを深彫りすれば、もう少し何かが見えてきそうな気がします。

2011-06-13 23:59:01
TAKE^2 @_taketake

@n3104 機能視点での分類はあまり考えたことがありません。というかDB屋なのでDBばっかり見てるので…機能一覧とかちゃんと見ていれば(ちゃんと仕事すれば)別のアイデアが生まれるのかもしれません。

2011-06-14 00:00:02
TAKE^2 @_taketake

@n3104 まずは、登場人物ですかね。どの登場人物が主として更新するかという観点で大きく分けます。次にその中で更新サイクルなどで分けます。とまあ、これくらいです。これだけでもそこそこ大きいシステムだといつのまにかプレフィックスが20種類くらいできちゃいます。

2011-06-14 00:04:15
Satoshi Noto @n3104

@_taketake 20ですか!そんなにありましたっけ?そこそこ大きいシステムをやってなかったのか、それとも私もフレームワークばかり見ていてテーブル定義をちゃんと見てなかったのか(汗

2011-06-14 00:07:46
TAKE^2 @_taketake

@n3104 いや、大統領は10個くらい。 坊さんは20個くらい。登場人物に財務チームとか代理店、提携先とか含まれてくるんで。

2011-06-14 00:09:18