このページはAIで翻訳されています。コミュニティによるレビューはまだ行われていません。 英語で読む

ブログ · 2023年9月8日 · Steve Simpson · データアーキテクチャ

Steve のデータモデリング:バージョン管理の戦略を使いこなす

はじめに:

このブログでは、データモデリングでレコードのバージョン管理を扱う二つの異なる方法を探り、レコードとその子レコードの複数のバージョンを効率よく管理するための知見と戦略をお届けします。

こうした戦略は、バージョン管理が重要なオブジェクトモデルに取り組む設計者にとって欠かせません。

レコードのバージョン管理の方法を理解する

レコードのバージョン管理には、主に二つの方法があります。

  1. 対等レコード方式
  2. 子バージョン方式

それぞれの方法を掘り下げ、実装、利点、欠点を理解しましょう。

対等レコード方式

対等レコード方式では、レコードの各バージョンを、最上位のオブジェクトの下に別々の対等なレコードとして作ります。この方法は単純で、Salesforce が商談の下に見積を実装している方法がその例です。

選択肢1、対等レコード:各バージョンを商談の下の別々の見積にする。利点:モデルが単純。欠点:すべてのバージョンがリストビューやレポートに出る、レコード同士がはっきりつながらない、有効や下書きのものが同時に複数できうる

実装:

各バージョンは、最上位のオブジェクトの下の別々のレコードです。

レコードの一つを主として示すことはできますが、すべてのバージョンがリストビュー、関連リスト、レポートに表示されます。

利点:

欠点:

きちんと強制しないと、主のレコードや作業中のレコードが複数できてしまうかもしれません。

子バージョン方式

子バージョン方式では、2階層のオブジェクトを作ります。最上位の親オブジェクトと、バージョンごとの子オブジェクトです。この方法なら、すっきりしたバージョン管理と変更履歴の仕組みが実現します。

選択肢2、子バージョン:一つの Configuration 親に Configuration Version の子と、それぞれの子オブジェクトがぶら下がる。利点:バージョンと変更履歴が明確、有効なバージョンは一つだけ、アーカイブされたバージョンは変更できない。欠点:モデルが複雑になり、状態のルールを強制する必要がある

実装:

  1. 最上位のオブジェクトが構成を表し、子オブジェクトが各バージョンを表します。
  2. 各子バージョンは自動で採番され、ステータス(例:アーカイブ済み、有効、保留中)を持ちます。
  3. 有効なバージョンはロックされて本番で使われ、下書きのバージョンは編集できます。
  4. 下書きを有効化すると、それが有効になり、前の有効なバージョンはアーカイブされます。

利点:

欠点:

Salesforce の実装例

スクリーンショット:Salesforce のフローの詳細ページとフローのバージョン一覧。一つが有効になっている

Salesforce は、フローで似た方法を実装しています。Salesforce には最上位のフローオブジェクトがあり、その子としてフローのバージョンがあります。各バージョンは自動で採番され、各フローとその作成日、有効化日の詳しい履歴が残ります。

この実装により、一度に有効なフローは一つだけになり、信頼できる効率的なバージョン管理の仕組みになっています。

セクション5:まとめ

レコードのバージョン管理に正しい方法を理解して選ぶことは、データモデリングで欠かせません。対等レコード方式は単純ですが、子バージョン方式はより多くの制御と効率的な監査証跡を提供します。Salesforce の実装を学び、自分のデータモデリングの課題を考えれば、ニーズに最も合う方法を選べます。

お楽しみに!

さらなる知見やヒントは、この www.SteveTechArc.com と YouTube チャンネル @SteveTechArc (opens in a new tab) で。チャンネル登録して、私たちと一緒にデータモデリングの腕を磨きましょう!

アーキテクト仲間やアーキテクトを目指す人たちと面白い考えを共有して、世界を変える手助けを!

文字起こしには AI を活用

STA 2.1