gpt4 book ai didi

go - 如何确定哪些数据库表列需要从修改后的结构中更新?

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:22 26 4
gpt4 key购买 nike

我面临的问题更多是代码设计,而不是具体的相关问题。我正在构建一个简单的 CRUD 应用程序,除了更新部分之外,一切似乎都很顺利:我有一个简单的结构类型:

type User struct {
ID string
Name string
Password string
}

和数据存储层的接口(interface):

type Store interface {
...
Update(user *User) error
...
}

问题是,对于大多数数据库驱动程序,您不能只传递整个结构实例并希望他们的系统知道哪些字段被修改,整个文档/行被替换。我应该如何跟踪哪些字段被修改(以便我可以相应地在存储层中更新它们)?也许将我想修改的所有字段作为 interface{} 的映射传递给 Update 函数?

最佳答案

有很多方法可以实现这一目标。例如,您可以使用 setter 来更改值。因此您可以跟踪更新的字段。像这样:

type User struct {
ID string
Name string
Password string
updateFields map[string]bool
}

func (u *User) SetName(name string) {
u.Name = name
updateFields["name"] = true
}

您可以通过反射使用更自动化的方式。

关于go - 如何确定哪些数据库表列需要从修改后的结构中更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55551504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com