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_fieldsuser_custom_fields 表分别使用 idname 列作为某种“软关联”,但从设计角度来看,我很好奇为什么没有采用直接的外键关联?我相信这一定有充分的理由,但非常希望能具体了解在数据库设计决策时考虑了哪些因素!

谢谢