Skip Navigation

What would be the best way to store the country of a user in SQL?

I use Gorm. This is the current code:

 go
    
package main

import (
    "fmt"
    "log"

    "gorm.io/driver/sqlite"
    "gorm.io/gorm"
)

type Env struct {
    DB     *gorm.DB
    Logger *log.Logger
}

type User struct {
    ID           uint
    Username     string
    Name         string
    Email        string
    PasswordHash string
    Country      string //should probably be a foreign key of another table
}

func initDB() {
    env := &Env{}
    db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{})
    if err != nil {
        fmt.Printf("Error opening database: %v", err)
        return
    }
    env.DB = db
    env.DB.AutoMigrate(&User{})

}

func main() {
    initDB()
}


  

As you can see in the comment in the code, I assume the best way would be to have a table of countries and then assign each user to one via a foreign key. However, it seems a bit cumbersome to manually create a list of all countries. Is there a better way to do this?

5 comments