Bagaimana menggunakan bahasa Go untuk menulis modul pengurusan kegemaran pengguna dalam sistem memasak dari pintu ke pintu?
Sebagai bahasa pengaturcaraan yang popular dengan pantas, bahasa Go berprestasi baik dalam bidang pembangunan web. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk menulis modul pengurusan kegemaran pengguna dalam sistem memasak dari pintu ke pintu dan memberikan contoh kod khusus.
Pertama, kita perlu mereka bentuk model pangkalan data kegemaran pengguna. Dengan mengandaikan bahawa pengguna boleh mengumpul berbilang hidangan, kami boleh mereka bentuk dua jadual: jadual pengguna dan jadual kegemaran.
Jadual pengguna boleh mengandungi medan berikut:
ID (ID) Kegemaran
package main import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) var db *gorm.DB func init() { // 创建数据库连接 var err error db, err = gorm.Open("mysql", "username:password@tcp(localhost:3306)/database?charset=utf8mb4&parseTime=True&loc=Local") if err != nil { panic(err) } // 创建相关表 db.AutoMigrate(&User{}, &Favorite{}) } func main() { defer db.Close() // 进行其他操作 }
Dalam bahasa Go, kita perlu mentakrifkan model untuk memetakan jadual pangkalan data. Berikut ialah takrifan model Pengguna dan Kegemaran.
type User struct { ID uint `gorm:"primary_key"` Username string `gorm:"unique"` Password string CreatedAt time.Time UpdatedAt time.Time } type Favorite struct { ID uint `gorm:"primary_key"` UserID uint DishID uint CreatedAt time.Time UpdatedAt time.Time User User Dish Dish }
Untuk merealisasikan fungsi pengurusan kegemaran, kita boleh menentukan beberapa antara muka yang berkaitan, seperti menambah kegemaran, memadam kegemaran, mendapatkan senarai kegemaran pengguna, dsb.
// 添加收藏夹 func AddFavorite(userID uint, dishID uint) error { favorite := Favorite{ UserID: userID, DishID: dishID, CreatedAt: time.Now(), UpdatedAt: time.Now(), } err := db.Create(&favorite).Error if err != nil { return err } return nil } // 删除收藏夹 func DeleteFavorite(userID uint, dishID uint) error { err := db.Where("user_id = ? AND dish_id = ?", userID, dishID).Delete(&Favorite{}).Error if err != nil { return err } return nil } // 获取用户收藏夹列表 func GetFavoriteList(userID uint) ([]Favorite, error) { var favorites []Favorite err := db.Where("user_id = ?", userID).Find(&favorites).Error if err != nil { return nil, err } return favorites, nil }
Atas ialah kandungan terperinci Bagaimana untuk menggunakan bahasa Go untuk menulis modul pengurusan kegemaran pengguna dalam sistem memasak dari pintu ke pintu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!