Go language development of door-to-door cooking system: How to implement the dish collection function?
With the improvement of living standards, more and more people choose to have chefs come to cook for them. The door-to-door cooking system emerged as the times require, providing users with a convenient service platform. When developing such a system, the dish collection function is one of the most important functions. This article will introduce how to use Go language to develop a door-to-door cooking system and implement the dish collection function.
1. Project Requirements Analysis
Before starting development, we first need to understand the specific requirements of the dish collection function. Usually, users can find their favorite dishes by browsing the menu or searching for dishes, and add them to their favorites to facilitate future search and ordering.
Based on this requirement, we can design the following data structure:
2. Database design and table creation
We use MySQL as the database. Based on the requirements, we need to create three tables: user, dish and favorite.
The user table (user) structure is as follows:
CREATE TABLE user
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(255) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Dish table (dish) structure As follows:
CREATE TABLE dish
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(255) NOT NULL,
price
decimal(10,2) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
The favorites table (favorite) structure is as follows:
CREATE TABLE favorite
(
id
int(11) NOT NULL AUTO_INCREMENT,
user_id
int(11) NOT NULL,
dish_id
int(11) NOT NULL,
PRIMARY KEY (id
),
KEY idx_user_id
(user_id
),
KEY idx_dish_id
(dish_id
),
CONSTRAINT fk_user_id
FOREIGN KEY (user_id
) REFERENCES user
(id
),
CONSTRAINT fk_dish_id
FOREIGN KEY (dish_id
) REFERENCES dish
(id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. Go language implementation
Next, we use Go language to implement the dish collection function. First, we need to define the corresponding structure to map with the table in the database:
type User struct {
ID int `json:"id"` Name string `json:"name"`
}
type Dish struct {
ID int `json:"id"` Name string `json:"name"` Price float64 `json:"price"`
}
type Favorite struct {
ID int `json:"id"` UserID int `json:"user_id"` DishID int `json:"dish_id"`
}
Next, we need to write the corresponding API interface to implement the dish collection function. The following is some sample code:
func GetUserFavorite(userID int) ([]Dish, error) {
favorites := make([]Favorite, 0) dishes := make([]Dish, 0) err := db.Where("user_id = ?", userID).Find(&favorites).Error if err != nil { return nil, err } for _, favorite := range favorites { dish := Dish{} err := db.Where("id = ?", favorite.DishID).First(&dish).Error if err != nil { return nil, err } dishes = append(dishes, dish) } return dishes, nil
}
func AddDishToFavorite(userID, dishID int) error {
favorite := Favorite{ UserID: userID, DishID: dishID, } err := db.Create(&favorite).Error if err != nil { return err } return nil
}
The above sample code shows how to use Go language to implement the dish collection function. By defining the structure and writing the corresponding API interface, we can operate the favorites according to user needs, including obtaining the list of favorite dishes and adding dishes to the favorites.
4. Summary
In this article, we introduce how to use Go language to develop a door-to-door cooking system and implement the dish collection function. By designing data structures, building tables and writing API interfaces, we can meet user needs and provide a convenient and fast dish collection function. Of course, this is just a simple example, and some other factors may need to be considered in actual projects, such as dish classification, modification of collections, etc.
The above is the detailed content of Go language development of door-to-door cooking system: How to implement the dish collection function?. For more information, please follow other related articles on the PHP Chinese website!