UserField custom_field の参照

I have determined that user_field_15 implicitly maps to UserField(id:15)
and user_field_1 implicitly maps to UserField(id:1)

Is there any explicit mapping for UserField or is it explicitly user_field_n where n is the id for the UserField record?

Context

[79] pry(main)> user.custom_fields
=> {"user_field_2"=>"xxxx",
 "user_field_1"=>"xxxx-xxx-xxx",
 "user_field_4"=>"Fulltime",
 "user_field_8"=>"true",
 "user_field_9"=>"false",
 "user_field_13"=>"true",
 "user_field_15"=>"true"}

user_field = UserField.find_by_name("Mobile")
=> #<UserField:0x00005635bff79158
 id: 1,
 name: "Mobile",
 field_type: "text",
 created_at: Fri, 01 Feb 2019 23:05:43 UTC +00:00,
 updated_at: Mon, 08 Apr 2019 04:50:11 UTC +00:00,
 editable: true,
 description: "Your Mobile Number",
 required: false,
 show_on_profile: false,
 position: 1,
 show_on_user_card: false,
 external_name: nil,
 external_type: nil>
[81] pry(main)> 

スレッドを再掲して申し訳ありません。user_fields テーブルと user_custom_fields テーブルがそれぞれ idname 列を一種の「ソフトリレーションシップ」として使用していることに気づいたのですが、設計の観点から、なぜ直接の外部キーリンクになっていないのか気になりました。もちろん良い理由があるとは思いますが、データベース設計の決定に至った具体的な経緯について教えていただければ幸いです!

ありがとう