紐付けテーブルで紐付けたフィールドを別の紐付けテーブルの「紐付け対象のフィールド」に指定できますか?
紐付けテーブルで紐付けたフィールドを別の紐付けテーブルの「紐付け対象のフィールド」に指定することはできません。
具体例
たとえば、次のような設定をした場合、紐付けテーブルBによるデータ紐付けは残念ながら有効に機能しません。
紐付けテーブルA
- 紐付け設定
- [主キー]
user_id
- [紐付け対象のフィールド]
ユーザー情報 user_id
- [データの追加先]
ユーザー情報
- [主キー]
- スキーマ
- 下記
user_id | foo_id | ... |
---|---|---|
u001 | f099 | ... |
... | ... | ... |
紐付けテーブルB
- 紐付け設定
- [主キー]
foo_id
- [紐付け対象のフィールド]
ユーザー情報 foo_id
- [データの追加先]
ユーザー情報
- [主キー]
- スキーマ
- 下記
foo_id | bar_number | ... |
---|---|---|
f099 | 42 | ... |
... | ... | ... |
上記の設定には「u001というuser_idを持つユーザーについて、ユーザー情報のbar_numberフィールドを42で更新したい」という意図がありますが、実際にはそのような挙動になりません。
回避方法(例)
2つの紐付けテーブルを1つにまとめてください。
紐付けテーブルA'
- 紐付け設定
- [主キー]
user_id
- [紐付け対象のフィールド]
ユーザー情報 user_id
- [データの追加先]
ユーザー情報
- [主キー]
- スキーマ
- 下記
user_id | foo_id | bar_number | ... |
---|---|---|---|
u001 | f099 | 42 | ... |
... | ... | ... | ... |
Updated 10 months ago