Sankaのアソシエーションについて:RDBリレーションの違い
ラベル, ソースオブジェクト, ターゲットオブジェクト, タイプ, 作成者, 作成日時など。ソースオブジェクト / ターゲットオブジェクト には 受注 や 連絡先 のようなオブジェクトを保持し、UIでの候補制御に使います。タイプ で One-to-One / Many-to-Many を切り替え、UIやサービス層が選択制限をかけます。
customer_id のような外部キー (FK) カラムを追加し、参照整合性をDBが保証する。| 観点 | RDBのPK/FK | Sankaアソシエーション |
|---|---|---|
| 設計単位 | テーブル定義とIDカラム | 中間テーブルを拡張したレコード同士の関連付け管理機能 |
| 関係の追加 | マイグレーションが必要 | UI/APIからラベルを作成すれば即時反映 |
| 接続できる対象 | 固定の2テーブル | 任意の標準オブジェクト/カスタムオブジェクト、複数テーブル連携、制御機能 |
| 整合性担保 | DBがFK制約で保証 | アプリ・UI層でロジック制御 |
| 関係の意味付け | カラム名に依存 (例: order_contact_id) | ラベルで多言語・文脈ごとの名称を提供 |
| 検索・集計 | SQL JOINが基本 | ラベル単位で抽出し、必要に応じてRDB JOINやAPI加工を行う |
顧客というラベルに、企業オブジェクトと連絡先オブジェクトを設定できます。
CSVインポートなどで重複された場合は企業オブジェクトが優先されます。
連絡先 と 受注 の間に「担当者」「請求先」「配送先」など、異なる意味を持つ関係をそれぞれ別に作成可能です。
これにより、同じオブジェクトペアでも文脈に応じた関係を柔軟に表現できます。