查询一对一关系的正确方法

Proper way to query for a Has One Relationship

如果我正在寻找有信用卡号的人CreditCardNumber这是正确的方法吗?

type Person struct {
    gorm.Model
    Name            string
    CreditCard CreditCard 
}

type CreditCard struct {
    gorm.Model
    PersonID       *uint
    Number string
}

database.dbClient.
   Preload("CreditCard").
   Where("credit_card.number = ?", CreditCardNumber).
   Joins("left join credit_cards on person.id = credit_card.person_id AND credit_card.deleted_at is NULL").
   First(&Person)
db.Preload("Person").Find(&CreditCard)

我也不认为 PersonID 应该是一个指针。