タグ

ERDに関するshozzyのブックマーク (8)

  • マスタメンテナンスで未来のデータを入力したいんですけど - 極北データモデリング

    マスタメンテの扱いは毎回困るところ。 どうもマスタデータには「最新」系のものと「無時間」系のものがあるらしい。 いつのトランザクションデータと結合しても問題ないのが「無時間」のマスタで、問題を起こすことがあるのが「最新」のマスタ。 元号マスタなんてのは無時間。 商品マスタとか部門マスタなんかが「最新」のマスタ。属性が今時点の値になっているので、古ーいトランザシクョンデータと結合すると「商品名が(過去の事実と)違う」「部門の所属セグメントが違う」みたいなことになる。 そういう属性はトランザクションデータ側にコピーしておけばとりあえず問題ないんだけど*1、ほんとに困るのは未来のデータを前もって入力したいとき。 例えば4/1から新入社員が1000人入ってくる会社で、3月中に新人の情報をちまちま入力していると、3月中の社員数が狂ってしまう。正しくは4/1の明け方に1000人分入力しなくてはならない

    マスタメンテナンスで未来のデータを入力したいんですけど - 極北データモデリング
    shozzy
    shozzy 2008/11/14
    昔、2.の適用開始日・終了日パターンで作成して、えらい目にあいました…/未来データの先行入力は3.が良さげ。でも過去データは… サロゲートキーにしてマスタは追記のみに?「最新」かどうかはフラグで
  • 電話番号の帰属先は何処

    Ognacの雑感 木漏れ日々 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1487 記事 - 0 コメント - 45666 トラックバック - 143 書庫 2014年5月 (6) 2014年4月 (13) 2014年3月 (14) 2014年2月 (12) 2014年1月 (12) 2013年12月 (13) 2013年11月 (13) 2013年10月 (11) 2013年9月 (13) 2013年8月 (14) 2013年7月 (13) 2013年6月 (14) 2013年5月 (15) 2013年4月 (13) 2013年3月 (14) 2013年2月 (13) 2013年1月 (15) 2012年12月 (14) 2012年11月 (14) 2012年10月 (15) 2012年9月 (14) 2012年8月 (13) 2012年7月 (13)

    shozzy
    shozzy 2008/01/12
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    shozzy
    shozzy 2007/10/10
    「URI が変わるようじゃしょうがない。」そこに波及するという点に気づいてなかった!確かにそうだ。
  • 2007-09-20

    主張の矛盾を許容することなんじゃないかと思い始めた。 以前から履歴管理をするリソースってどういうモデル設計にすれば良いのか悩んでいたのだけど、なんとなく解決策が見えてきた。 まず重要なのがID。IDは実装技術なのだけど、この履歴管理するリソースを扱う際には非常に重要。まず、例として商品マスタを考える。要件としては次のような感じ。 当時のイベントからは当時の商品名が参照できること 特定の日付時点での商品名が引けること 単なる間違いは直接修正したい 利用開始日より前にマスタを登録するが、期日が来るまで有効にならないこと 利用終了日が設定できる コードを変更しても串刺し検索が可能 まず、1番目はイベントにIDを付けておくだけで良いので、次のようなテーブルにすれば問題は解決する。 ID 商品コード 商品名 1 A001 おでん100% 次に「特定の日付時点での商品を引く必要がある」ので、少なくとも

    2007-09-20
    shozzy
    shozzy 2007/10/04
    履歴周りの話/数十万件の商品×履歴を1TBLで持つと件数増えまくるのでTBLは分けたい/とか思ったけどイベント系のクリーニングと同じで保持期限を持たせればいい/うむ、イベント毎に商品名持つほうがよほど非効率だな
  • 2006-05-20 - 今日とは違う明日

    EJB3.0入門, 技術, オブジェクト指向, DBABD(Activity Based Datamodel)で設計されたテーブルをEJB3で実際に使ってみる。ABDの復習まずはABDの復習から。使用するEntityは、先日のSeasarConferenceのセッション資料から拝借。Resource系Entity 顧客商品Event系Entity 売上売上明細通常のデータモデルEvent系EntityとResource系Entityを関連させるために、FKを設定する。楽々ERDレッスン (CodeZine BOOKS)を読んだ段階だと、こんな感じのモデルになるのだらうか。ABDへABDはEntity間の関連に、より焦点をあてているようだ。通常、FKによって関連が表現されているが、そのせいで1:mだとかm:mのような小難し関連が出てきてしまう、と。関連もEntity(以下、Relations

    shozzy
    shozzy 2007/10/04
  • おれおれサブセット実装 - 極北データモデリング

    サブセットを実装するとできなくなってしまうことに unique制約 外部キー制約 がある。 例えば、社員マスタを正社員とパート社員というサブセットに分割したとして、 正社員(R) = { 社員ID, 社員コード, 名前, ... } パート社員(R) = { 社員ID, 社員コード, 名前, ... } 社員コードは全社員を通じてユニークである必要があったら、それをチェックするのが面倒になる。 サブセットの社員コードにそれぞれ unique 制約をつけても、「社員全体で一意」かどうかのチェックにならないから。 また、社員の扶養家族マスタというのがあったとして、 社員の扶養家族(MO) = { 社員ID, 続柄コード, 扶養家族名 } このテーブルの社員IDには外部キー制約をつけることができない。 認知番号しかない「サブセット」を作ったらどうか 上記の問題を回避するために、スーパーセットはそ

    おれおれサブセット実装 - 極北データモデリング
    shozzy
    shozzy 2007/06/05
  • 極北データモデリング■[RDB]タグ

    削除フラグ(というか「論理削除を削除フラグだけで実装すること」)批判は何度も見てきたが PostgreSQLアンチパターン これ見るともはや論理削除自体が闇扱いになってしまったようだ。 闇だろうと何だろうと論理削除(というドリルが提供する穴)は要件の実装に必要なので、このへんの議論はあまりまじめに追ってこなかった。 いつだったか「削除フラグはバグの温床だからやめろ」という主張を読んでおぉなるほどと思い、ではどうやって論理削除を実装するのかなと思って続きを読むと「『ほんとに削除したデータが必要ですか?』とユーザに確認して、物理削除に変えさせてもらう」と書いてあってズコーとなったことがあるが、要件削っていいなら実装上のどんな問題も消えるわけで、何かもう別世界の議論で自分の仕事には関係ないと思っていた。 が、これだけ繰り返し批判されているからには、論理削除を正しく使う方法なり条件なりを明らかに

    極北データモデリング■[RDB]タグ
    shozzy
    shozzy 2007/06/05
  • 「売上伝票の取消をやめた」の実装

    Ognacの雑感 木漏れ日々 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1487 記事 - 0 コメント - 45676 トラックバック - 143 書庫 2014年5月 (6) 2014年4月 (13) 2014年3月 (14) 2014年2月 (12) 2014年1月 (12) 2013年12月 (13) 2013年11月 (13) 2013年10月 (11) 2013年9月 (13) 2013年8月 (14) 2013年7月 (13) 2013年6月 (14) 2013年5月 (15) 2013年4月 (13) 2013年3月 (14) 2013年2月 (13) 2013年1月 (15) 2012年12月 (14) 2012年11月 (14) 2012年10月 (15) 2012年9月 (14) 2012年8月 (13) 2012年7月 (13)

  • 1