当前位置: 首页 > 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.pierceye.com/news/115624/

相关文章:

  • 上海网站备案在哪里查询网站建设哪家稳妥
  • 建设网站做什么赚钱网站制作.
  • 小企业公司网站怎么建做网站英文编辑有前途吗
  • 优化图片传网站wordpress背景图片
  • 网站服务器哪家好些外包做网站不付尾款
  • 建站系统wordpress下载哪个公司的微信商城系统
  • 网站建设app开发合同深圳企业网站制作设计方案
  • 免费网站整站模板下载寻找做网站
  • 做此广告的网站做家纺的网站
  • 湖南畅想网站建设个人网站建设基本定位
  • 建站公司外包钓鱼网站怎么做
  • 个人网站logo需要备案吗鑫灵锐做网站多少钱
  • .xyz做网站怎么样网站产品预算
  • 建网站先要申请网址吗做网站给文件不侵权
  • 一元夺宝网站建设Wordpress 普通图片裁剪
  • 网站推广都有哪些自己有网站怎么优化
  • 宠物交易网站模板更改wordpress后台登录地址
  • 有电脑网站怎样建手机正规网络游戏平台
  • 网站抓取QQ获取系统cms监控手机客户端
  • 郑州网站推广价格优礼品网站模板
  • 百度指数不高的网站怎么优化网站图片类型
  • 北京专业做网站怎么样app软件开发摄像头
  • 网站建设导向erp系统软件免费版
  • 手表网站网站开发毕业设计文献综述
  • 台州网站制作维护关于微网站策划ppt怎么做
  • 网站建设中期目标开发app找那个公司
  • 跨境自建站模板网站内容和功能清单
  • 平面设计找素材的网站电子商务网站建设的步骤一般为(
  • 一个服务器可以备案几个网站凡科门店通怎么样
  • 房地产企业网站建设想给公司产品做个推广