【図解】Salesforceのデータ構造入門：基礎から実践まで

## はじめに
Salesforceを使い始めると最初に戸惑うのが「データ構造」です。この記事では、ExcelやSpreadsheetに慣れた方でも理解できるように、Salesforceのデータ構造を基礎から解説します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/6d8bbab7-cd88-36db-22a5-51d7d280b1ec.png)


## 目次
1. データ構造の基本概念
2. データの格納方法
3. データの関連付け方
4. データ管理の実践
5. システム設計のポイント
6. データ設計のベストプラクティス
7. セキュリティとアクセス制御
8. よくある質問と回答

## 1. データ構造の基本概念

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/49e47e4f-297d-0890-23f1-3537204f02b7.png)

### 1.1 Excelとの比較
まずは身近なExcelと比較して理解してみましょう：

| Excel | Salesforce | 説明 |
|-------|------------|------|
| ブック | 組織 | データ全体を管理する単位 |
| シート | オブジェクト | データを分類して格納する場所 |
| 列 | フィールド | どんな情報を保存するか |
| 行 | レコード | 実際のデータ1件分 |

### 1.2 データの階層構造
```
組織（会社のデータ全体）
├── 取引先（会社の情報）
│   ├── 会社名
│   ├── 住所
│   └── 電話番号
├── 取引先責任者（人の情報）
│   ├── 名前
│   ├── メール
│   └── 役職
└── 商談（営業案件の情報）
    ├── 案件名
    ├── 金額
    └── 状況
```

## 2. データの格納方法

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/365f019b-fe03-2616-720e-bdf05d09c35e.png)


### 2.1 オブジェクト
**標準オブジェクト**
- 取引先：会社の情報を管理
- 取引先責任者：人の情報を管理
- 商談：営業案件を管理
- リード：見込み客を管理

**カスタムオブジェクト**
- 製品管理
- イベント参加者
- 契約書
- 案件進捗報告

### 2.2 フィールド
**主なフィールドタイプ**
1. テキスト
   - 短いテキスト（最大255文字）
   - ロングテキストエリア（最大131,072文字）
   - リッチテキストエリア

2. 数値
   - 通常の数値（最大18桁）
   - 通貨
   - 自動採番

3. 選択リスト
   - 単一選択
   - 複数選択
   - グローバル選択リスト

4. 日付/日時
   - 日付
   - 日時（タイムゾーン対応）

5. 参照（Reference）
   - マスタ詳細リレーションシップ
   - ルックアップリレーションシップ

6. 数式（Formula）
   - テキスト返却
   - 数値計算
   - 条件分岐

## 3. データの関連付け方

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/6072a4d9-d1d8-8386-9d3a-d6cece3018d2.png)


### 3.1 マスタ詳細リレーションシップ
- 強い依存関係を持つ親子関係
- 親レコードが削除されると子レコードも自動削除
- ロールアップサマリー機能が使用可能
- 子レコードは必ず親レコードが必要

### 3.2 ルックアップリレーションシップ
- 緩やかな関連付け
- 親レコードが削除されても子レコードは維持
- 任意の関連付けが可能
- 必須/任意の設定が可能

## 4. データ管理の実践

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/bcbad102-9e98-79d7-4bb0-2a53c24cc071.png)

### 4.1 データローダー
- 大量データのインポート
- 一括更新
- データのエクスポート
- スケジュール実行

### 4.2 データインポートウィザード
- 少量データの取り込み（最大50,000レコード）
- GUIベースの簡単操作
- テンプレート活用
- 標準オブジェクトの一括取り込みに最適

### 4.3 バックアップとリストア
- **週次データエクスポート**
  - Salesforceの標準機能を使用
  - CSV形式での自動エクスポート
  - すべてのデータと添付ファイルを保存

- **データローダーによる手動エクスポート**
  - 特定オブジェクトの選択的バックアップ
  - 高度なフィルタリング
  - スケジュール実行が可能

- **サードパーティツールの活用**
  - Spanning Backup
  - OwnBackup
  - 高度なバックアップ/リストア機能

## 5. システム設計のポイント

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/53af83af-6f4b-3092-4ecc-05fd8c062aac.png)


### 5.1 データモデル設計の基本
- **シンプルな設計を心がける**
  - フィールド数は必要最小限に抑える
  - 類似フィールドは統合を検討
  - 使用頻度の低いフィールドは見直し

- **効率的なデータ構造**
  - 適切なフィールドタイプの選択
  - リレーションシップの適切な設定
  - データの正規化を意識する

### 5.2 使いやすさの向上
- **ユーザビリティ**
  - 関連する情報のグループ化
  - 直感的なフィールド名の設定
  - 入力しやすい画面レイアウト

- **データの可視性**
  - 重要な情報の優先表示
  - 関連情報への簡単なアクセス
  - 効率的な検索機能の実装

## 6. データ設計のベストプラクティス

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/5b077d87-d0a1-9636-32e7-b0cf503676d7.png)

### 6.1 パフォーマンスとメンテナンス性
- フィールド数は必要最小限に抑える
  - 実際に使用するフィールドのみを作成
  - 未使用フィールドは非表示または削除を検討
  - 類似フィールドは統合を検討

- 関連リストの最適化
  - 頻繁に参照するフィールドのみ表示
  - 大量データの関連リストは別タブに配置
  - 検索条件を活用して表示件数を制御

### 6.2 データ品質の確保
- 入力規則の活用
  - 重要フィールドの必須化
  - データ形式の標準化
  - 業務ルールに基づく妥当性チェック

- 重複管理
  - 重複ルールの設定
  - 外部IDの活用
  - マッチングルールの適切な設定

## 7. セキュリティとアクセス制御

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/5712a32e-1d81-faad-a019-6a6eab0ec926.png)

### 7.1 セキュリティ設定の基本
- **プロファイルと権限セット**
  - ユーザーごとの詳細な権限設定
  - 最小権限の原則に基づく設定
  - 業務ロールに応じた権限の割り当て

- **共有ルール**
  - 組織の階層に基づく共有
  - 条件に基づく自動共有
  - 手動共有の適切な利用

- **フィールドレベルセキュリティ**
  - 機密情報の保護
  - プロファイル別の表示/編集制御
  - 監査フィールドの管理

## まとめ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/3f506f44-d834-c974-3eea-5f146ed91e87.png)

Salesforceのデータ構造は、適切に設計することで柔軟で管理しやすいシステムを構築できます。

主なポイント：
1. データの分類と格納（オブジェクト）
2. 必要な情報の定義（フィールド）
3. 適切な関連付け（リレーションシップ）
4. 効率的なデータ管理（ツール活用）

## 参考情報
- Salesforce トレイルヘッド
- Salesforce ヘルプ＆トレーニング
- Salesforce 管理者ガイド
- Salesforce リリースノート