当前位置: 首页 > news >正文

网站备案查询网址头条搜索是百度引擎吗

网站备案查询网址,头条搜索是百度引擎吗,找电商平台帮我卖产品,中商外贸app这篇文章将以创建事件时间记录功能为示例#xff0c;介绍如何使用 Gorm 完成数据库表的基本映射、简单的创建表数据操作和注意事项。 数据库表设计 设计一个事件时间记录功能通常需要记录事件的开始时间、结束时间和事件类型#xff0c;以及一些额外的功能#xff0c;像事…这篇文章将以创建事件时间记录功能为示例介绍如何使用 Gorm 完成数据库表的基本映射、简单的创建表数据操作和注意事项。 数据库表设计 设计一个事件时间记录功能通常需要记录事件的开始时间、结束时间和事件类型以及一些额外的功能像事件描述。下面提供一个简单的数据库表设计方案。 我们提供两张数据库表记录类别表 Record_Type 和时间记录表 Time_Record。Record_Type 用于记录事件类型时间记录表是主要的记录表记录事件发生的起始时间和结束时间。基本结构如下 Record_Type ID唯一标识符Type时间类型 Time_Record ID唯一标识符start_time事件起始时间end_time事件结束事件Description事件描述type_id事件类型ID 其中 Record_Type 和 Time_Record 的主键都是自增的唯一标识符type_id 和 Record_Type 的 ID 建立外键约束建表语句如下 Record_Type CREATE TABLE Record_Types (ID INT AUTO_INCREMENT PRIMARY KEY,Type VARCHAR(255) NOT NULL );Time_Record CREATE TABLE Time_Records (ID INT AUTO_INCREMENT,start_time DATETIME NOT NULL,end_time DATETIME,Description TEXT,type_id INT,PRIMARY KEY (ID),FOREIGN KEY (type_id) REFERENCES Record_Types(ID) );需要注意的是这里的 start_time 非空而 end_time 可以为空这会影响到我们 Go 语言中的结构体对应的字段类型。 使用 Gorm 映射数据库表 使用 Gorm 之后我们可以使用 Go 语言中的结构体来映射数据库表不同类型则对应不同字段。常见的映射有INT 对应 int VARCHAR 和 TEXT 对应 string DATETIME 等时间类型则使用 time.Time 来映射。上述映射都是针对数据库中的非空字段而数据库中允许为空的字段则替换成对应的指针类型。下面是实现上述示例映射的具体代码 RecordType: // RecordType 记录类别 type RecordType struct {// 主键ID int gorm:primaryKeyType string }TimeRecord: // TimeRecord 时间记录 type TimeRecord struct {// 主键ID int gorm:primaryKeyStartTime time.TimeEndTime *time.TimeDescription string// 外键约束TypeId int gorm:check: ID RecordType }可以注意到上述 EndTime 字段的数据类型为 *time.Time 这正是因为 end_time 在数据库表中没有声明为非空所以我们使用time.Time 的指针类型来表示。另外在 Gorm 中主键和外键的声明则是通过标签来完成的。TimeRecord 表中 ID 字段类型声明后跟的 gorm:primaryKey就是主键标签。如果你需要建立联合主键则可以通过对多个字段同时加上主键标签并且注意字段顺序的编排因为 Gorm 会根据字段顺序来确定联合主键的顺序。外键则是使用 gorm:check: ID RecordType 标签来声明的其中的 RecordType 指定表ID 指定表中的字段。 名称映射 我们在给结构体和字段体起名时需要额外注意 Gorm 的名称映射规则 结构体的字段名称会默认映射为数据库表的字段名。但是结构体名需要是单数形式例如 RecordType 对应表 record_typesTimeRecord 对应表 time_records 。 RecordType 并不会映射为 recordtypes 而是带下划线的 record_types。这条规则同时适用于字段名和结构体名称。 通过 Gorm 插入表数据 结构体设计完成之后我们可以创建一个专门用于插入数据行的函数方便后续使用。而插入数据的方式也很简单主要分两步创建结构体然后调用 *gorm.DB 的 Create 即可。示例如下 // CreateType 创建新记录类别 func CreateType(db *gorm.DB, typeName string) (*RecordType, *gorm.DB) {rtype : RecordType{Type: typeName,}result : db.Create(rtype)return rtype, result } // StartRecord 开启新记录 func StartRecord(db *gorm.DB, description string, recordTypeId int) (*TimeRecord, *gorm.DB) {record : TimeRecord{StartTime: time.Now(),Description: description,TypeId: recordTypeId,}result : db.Create(record)return record, result }可以注意到对于自增的 ID 主键我们在创建结构体时对其省略。但是需要注意的是对于非空且没有默认值的对象我们进行省略是存在风险的如 time.Time 类型的非空对象省略后Gorm 会将结构体初始化时的零值赋给其转换的 SQL 语句从而导致错误。 到此简单的 Gorm 表映射便完成了。
http://www.zqtcl.cn/news/115624/

相关文章:

  • 如何看网站做的好坏vs2017做网站
  • 电子商务网站开发费用入账wordpress商城主题模板下载
  • 广西南宁公司网站制作百度推广自己做网站吗
  • 网站建设公司外链怎么做网站开发职业类别代码
  • 网站优化公司怎么选免费手机网站建设
  • 怎么建立自己的网站平台多少钱专用于做网站公司
  • 怎么修改网站后台权限商城网站制作 价格
  • 英铭广州网站建设wordpress服务器域名
  • 怎么做微商网站怎么生成网站源代码
  • 建设网站怎么设置网站页面大小外贸原单童装哪个网站做
  • 网站布局设计软件太原专业做网站
  • 织梦教育培训网站源码素材图下载
  • 内容网站外贸网站外贸网站建设行吗
  • 什么是网络营销定义北京网站关键词优化
  • 开奖视频网站开发成都优化官网公司
  • 网站开发培训学校互联网软件外包平台
  • 房屋网签查询系统官方网站建设网站总经理讲话范本
  • 创建网站好的平台罗湖网站建设优化
  • 青海兴远建设工程有限公司网站wordpress怎么设计网站
  • 泉州建站公司模板马云谈2025的房价
  • 动漫制作专业什么电脑最适合沈阳关键词优化报价
  • seo企业网站源码虚拟主机如何建设多个网站
  • 电商 网站模板借钱软件推广微信hyhyk1
  • 免费网站模板psd建网站程序工具
  • 企业建设网站专业服务网站设置文件夹权限
  • 用ip做网站威海市城乡建设局网站
  • 网页网站开发设计工作前景做网站 兼职
  • c 网站开发类似优酷乐山旅游英文网站建设
  • 网站空间租用哪家好小程序免费制作平台企业中心
  • 个人网站可以做哪些主题网站别人做的收到方正侵权