Home  >  Article  >  Backend Development  >  How to use Go language to write the user favorites management module in the door-to-door cooking system?

How to use Go language to write the user favorites management module in the door-to-door cooking system?

王林
王林Original
2023-11-01 11:18:20799browse

How to use Go language to write the user favorites management module in the door-to-door cooking system?

How to use Go language to write the user favorites management module in the door-to-door cooking system?

As a rapidly popular programming language, Go language performs well in the field of web development. This article will introduce how to use Go language to write the user favorites management module in the door-to-door cooking system, and provide specific code examples.

  1. Design database model

First, we need to design the database model of user favorites. Assuming that users can collect multiple dishes, we can design two tables: user table and favorites table.

The user table can contain the following fields:

  • User ID (ID)
  • Username (Username)
  • Password (Password)
  • Creation time (CreatedAt)
  • Update time (UpdatedAt)

The favorites table can contain the following fields:

  • Favorite ID ( ID)
  • Dish ID(DishID)
  • User ID(UserID)
  • Created Time(CreatedAt)
  • Updated Time(UpdatedAt)
  1. Create database connection

In Go language, we can use third-party libraries such as Gorm to operate the database. First, you need to set up a database connection and create related tables.

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()

    // 进行其他操作
}
  1. Define models and associations

In Go language, we need to define models to map database tables. The following are the definitions of the User and Favorite models.

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
}
  1. Implementing the favorites management function

In order to realize the favorites management function, we can define some related interfaces, such as adding favorites, deleting favorites, and obtaining user favorites folder list, etc.

// 添加收藏夹
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
}

The above sample code can implement the functions of adding, deleting and obtaining user favorites.

To sum up, this article introduces how to use Go language to write the user favorites management module in the door-to-door cooking system. By defining the database model, creating database connections, and implementing corresponding functions, we can easily manage users' favorites. I hope this article can help you, and happy programming!

The above is the detailed content of How to use Go language to write the user favorites management module in the door-to-door cooking system?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn