見出し画像

【Salesforce】データの持たせ方で変わる保守性

こんにちは!
また開発案件がスタートしたのでウキウキなぶっちーです!

今回はデータの持たせたかについて学んだことを備忘録として綴っていきます!!!

前提条件(今回の説明において)

今回説明する内容の前提条件は以下の通りです。

テストは国語、英語、数学、理解、社会の5教科あり、テスト結果を入力するオブジェクトA(以下A)にはそれぞれの結果を入力する項目1つずつがあります。
しかし、テストは前期、中期、後期の3回あるため、入力するたびに項目が更新されてしまい、前回との比較ができません。

そこでオブジェクトB(以下B)を作成し、Aが更新される度に値を取得し、履歴を追えるようにしようと思っています。

『1対1』か『1対n』か

この際に、Bでデータをどのように持つのがいいのでしょうか。
『1対1』の場合、Aのレコード情報を1つのBレコードに紐づけて管理します。

スクリーンショット 2021-10-17 16.13.04

『1対n』の場合、教科毎にレコードを分けて管理します。

スクリーンショット 2021-10-17 16.14.17

ここで簡単にメリデメを整理すると

<1対1>
 メリット :レコード数が1対1なので、見にいくレコードが1つで完結
 デメリット:教科が増えた際に、教科×テスト回数分の項目作成が必要

<1対n>
 メリット :教科が増えても、項目の選択リスト値を増やすだけでOK
 デメリット:Aのレコード数×教科の数だけレコードが増えてしまう

状況に合わせて使い分け

結局かよ!!とはなりますが、結論、一長一短だと思います。

例えば、生徒数がめちゃくちゃ多いマンモス校の場合、データ量が多すぎるので『1対1』の方がいいかもしれません。

例えば、BのレコードをAuraコンポーネントで表示させたいとなった場合は、<lightning:datatable>コンポーネントを使用するとコーディングはかなり短縮されると思います。

どういう形式でデータを管理、運用していくかによって変わると思いますが、データの持たせ方をいくつか理解しておくと、設計段階で保守のことまで考慮できるので、重要だと思いました!

ではまた次の記事でお会いしましょう😎

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ここまで見てくださりありがとうございます。

♡をくださると、次の記事の励みになります!!

こんな内容で困っている、こんなこと知りたいなどご意見があれば
是非是非コメントお待ちしています☆

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

この記事が気に入ったらサポートをしてみませんか?