ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    RDBの交差エンティティ

    このエントリーを含むはてなブックマーク はてなブックマーク - RDBの交差エンティティ あとで読む
    DBの設計で、T字形ERとか、ABD(Activity Based Datamodel)を勉強したら、
    「交差エンティティ」という仕組みを使うことが有用だと分かった。

    イミュータブル(不変)なDB設計 - 浜村拓夫の世界

    交差エンティティ - Google検索

    30分でわかるER図の書き方 (10) - とあるソフトウェア開発者のブログ

    交差エンティティ(intersection entity)と呼ばれるエンティティを導入することで、多対多のデータを保持できるようになります。



    RDBのテーブルは、
    ・マスター
    ・トランザクション
    の2区分ではなく、

    ・リソース
    ・イベント
    の2区分で見ると分かりやすい。

    テーブル間の関連性は、関連テーブルでつなぐ。
    1:1、1:多、多:多~どの関係でも、間に関連テーブルがはさまっていると、テーブル同士が疎結合になり、変更に強い設計になる?
    =ビジネスロジックに変更が生じて、ルールが変わったら、関連テーブルを追加・変更すればいいだけ?

    多:多の場合、間にはさまる関連テーブルのことを、
    「Intersect (Link) Entity」
    「交差エンティティ」
    「交差表」
    「連関エンティティ」
    「関係エンティティ」
    等と呼ぶらしい。

    関連テーブルをはさむと、テーブル数が増えるかな?
    SQLでJOINが多発しそうなら、JOIN後のVIEWを作っとけばいいのかな?

    Seasar Conference 2006 Spring (5) - 世界線航跡蔵

    イベント系重要

    まずは、『楽々ERDレッスン』の簡単なまとめをさらっと触った。一言で言えばnatural keyじゃなくidを付番するのが重要ということ。

    そして、その上で「イベント系重要」という話があった。

    マスターテーブルは確かに重要だけれども、それだけあっても仕方がないよね、と。顧客マスター、商品マスターだけあっても仕方がない。顧客だけ、商品だけあっても仕方がない。その間に「売り上げ」がなければビジネスにならない。商品、顧客のようなリソース系も大切だけれども、イベント系こそが真に重要である。

    イベント系って何かと言えば、顧客と商品が交差するのが売り上げであるように、交差エンティティである。そして、交差エンティティがまた他のエンティティと交差するかもしれないから、交差エンティティにも「id重要」。



    イベント系のテーブルは、交差エンティティとして振る舞っている?

    イベントは時系列で発生していく→履歴テーブル、更新ログになるから、
    UPDATEもDELETEも無しで、ひたすらINSERTしていけば良いのかな?

    楽々ERDレッスン (CodeZine BOOKS)
    (株)スターロジック 羽生 章洋
    翔泳社
    2006-04-18
    ¥ 2,376

    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/1201-dd1bb7b4

    FC2Ad