goframe 博客分類文章模型文檔 主要解決關聯

goframe 博客文章模型文檔

模型結構 (BlogArticleInfoRes)

BlogArticleInfoRes 結構體代表系統中的一篇博客文章,包含完整的元數據和內容管理功能。

type BlogArticleInfoRes struct {Id          uint         `orm:"id,primary" json:"id"`           // 唯一標識符Title       string       `orm:"title" json:"title"`             // 文章標題Content     string       `orm:"content" json:"content"`         // 文章內容Summary     string       `orm:"summary" json:"summary"`         // 文章摘要CategoryId  int          `orm:"category_id" json:"categoryId"`  // 分類IDTags        string       `orm:"tags" json:"tags"`               // 文章標簽Cover       string       `orm:"cover" json:"cover"`             // 封面圖片URLViewCount   int          `orm:"view_count" json:"viewCount"`    // 瀏覽次數Status      int          `orm:"status" json:"status"`           // 文章狀態CreatedAt   *gtime.Time  `orm:"created_at" json:"createdAt"`   // 創建時間UpdatedAt   *gtime.Time  `orm:"updated_at" json:"updatedAt"`   // 更新時間IsTop       int          `orm:"is_top" json:"isTop"`           // 是否置頂Author      string       `orm:"author" json:"author"`           // 文章作者Category    *LinkedCategory `orm:"with:id=category_id" json:"category"` // 關聯分類
}

字段說明

字段名類型JSON標簽ORM標簽描述
Iduintjson:“id”orm:“id,primary”文章唯一標識符
Titlestringjson:“title”orm:“title”文章標題
Contentstringjson:“content”orm:“content”文章主要內容
Summarystringjson:“summary”orm:“summary”文章簡短摘要
CategoryIdintjson:“categoryId”orm:“category_id”文章分類ID
Tagsstringjson:“tags”orm:“tags”文章標簽(逗號分隔)
Coverstringjson:“cover”orm:“cover”文章封面圖片URL
ViewCountintjson:“viewCount”orm:“view_count”文章瀏覽次數
Statusintjson:“status”orm:“status”文章狀態
CreatedAt*gtime.Timejson:“createdAt”orm:“created_at”文章創建時間戳
UpdatedAt*gtime.Timejson:“updatedAt”orm:“updated_at”最后更新時間戳
IsTopintjson:“isTop”orm:“is_top”是否置頂文章
Authorstringjson:“author”orm:“author”文章作者名稱

關聯關系說明

該模型通過 Category 字段與分類模型建立一對一關系:

Category *LinkedCategory `orm:"with:id=category_id" json:"category"`

ORM關聯標簽解析

  • with: 指定關聯條件
  • id=category_id 表示當前模型的 category_id 字段與分類模型的 id 字段關聯
  • 查詢時自動進行數據庫表連接

查詢示例

func (s *sBlogArticle) GetArticleWithCategory(ctx context.Context, articleId uint) (*model.BlogArticleInfoRes, error) {var articleInfo *model.BlogArticleInfoReserr := dao.BlogArticle.Ctx(ctx).WithAll().Where("id", articleId).Scan(&articleInfo)if err != nil {return nil, err}// articleInfo.Category 將自動包含關聯的分類信息return articleInfo, nil
}

狀態值說明

  • 0: 草稿
  • 1: 已發布
  • 2: 審核中
  • 3: 已拒絕

置頂值說明

  • 0: 普通文章
  • 1: 置頂文章

該模型結構為博客文章管理提供了強大的基礎,支持分類、標簽和元數據跟蹤等功能。

分類模型結構 (CmsCategoryInfoRes)

分類模型用于管理博客文章的分類信息,支持多級分類和SEO優化。

type CmsCategoryInfoRes struct {gmeta.Meta      `orm:"table:cms_category"`Id              uint        `orm:"id,primary" json:"id"`           // IDName            string      `orm:"name" json:"name"`               // 名稱Type            string      `orm:"type" json:"type"`               // 類型ParentId        uint        `orm:"parent_id" json:"parentId"`      // 父IDSort            int         `orm:"sort" json:"sort"`               // 排序Status          string      `orm:"status" json:"status"`           // 狀態Alias           string      `orm:"alias" json:"alias"`             // 別名CreatedAt       *gtime.Time `orm:"created_at" json:"createdAt"`    // 創建時間UpdatedAt       *gtime.Time `orm:"updated_at" json:"updatedAt"`    // 更新時間
}

分類字段說明

字段名類型描述
Iduint分類唯一標識符
Namestring分類名稱
Typestring分類類型
ParentIduint父分類ID,用于構建分類層級
Sortint排序權重
Statusstring分類狀態
Aliasstring分類別名,用于URL優化
CreatedAt*gtime.Time創建時間
UpdatedAt*gtime.Time更新時間

分類特性

  1. 多級分類

    • 通過 ParentId 支持無限級分類
    • 可以構建復雜的分類層級結構
  2. URL優化

    • 支持別名設置,優化URL結構
    • 更友好的SEO支持
  3. 狀態管理

    • 可設置分類狀態
    • 支持分類的啟用/禁用管理

查詢示例

// 獲取分類及其子分類
func (s *sCmsCategory) GetCategoryWithChildren(ctx context.Context, categoryId uint) (*model.CmsCategoryInfoRes, error) {var category *model.CmsCategoryInfoReserr := dao.CmsCategory.Ctx(ctx).Where("id", categoryId).Scan(&category)if err != nil {return nil, err}// 獲取子分類children, err := dao.CmsCategory.Ctx(ctx).Where("parent_id", categoryId).Order("sort asc").All()if err != nil {return nil, err}// 處理子分類...return category, nil
}// 獲取分類樹
func (s *sCmsCategory) GetCategoryTree(ctx context.Context) ([]*model.CmsCategoryInfoRes, error) {// 獲取所有分類categories, err := dao.CmsCategory.Ctx(ctx).Order("sort asc").All()if err != nil {return nil, err}// 構建分類樹return buildCategoryTree(categories), nil
}

與文章模型的關聯

文章模型通過 CategoryId 關聯到分類模型:

Category *CmsCategoryInfoRes `orm:"with:id=category_id" json:"category"`

這種關聯實現:

  • 文章分類的快速查詢
  • 分類文章的統計
  • 分類導航的構建
  • 文章的多級分類展示

狀態說明

  • 0: 禁用
  • 1: 啟用
  • 2: 待審核

該分類模型為博客系統提供了靈活的文章分類管理功能,支持多級分類結構和基本的分類屬性管理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894451.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894451.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894451.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MQTT知識

MQTT協議 MQTT 是一種基于發布/訂閱模式的輕量級消息傳輸協議,專門針對低帶寬和不穩定網絡環境的物聯網應用而設計,可以用極少的代碼為聯網設備提供實時可靠的消息服務。MQTT 協議廣泛應用于物聯網、移動互聯網、智能硬件、車聯網、智慧城市、遠程醫療、…

Python(Pandas)數據分析學習

1.Pandas基本構成 引入Pandas import pandas as pd 1.Series 行 對應Excel中的一行數據,一維數據 定義Series # 第一個參數是具體數據 # 第二個參數的對應的索引下標 # 第三個參數的行名稱 data pd.Series([1,2,3,4,5], index[a,b,c,d,e], namedata) print(d…

我用Ai學Android Jetpack Compose之Card

這篇學習一下Card。回答來自 通義千問。 我想學習Card,麻煩你介紹一下 當然可以!在 Jetpack Compose 中,Card 是一個非常常用的組件,用于創建帶有陰影和圓角的卡片式布局。它可以幫助你輕松實現美觀且一致的 UI 設計&#xff0c…

圖漾相機——C++語言屬性設置

文章目錄 前言1.SDK API功能介紹1.1 Device組件下的API測試1.1.1 相機工作模式設置(TY_TRIGGER_PARAM_EX)1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…

STM32 TIM定時器配置

TIM簡介 TIM(Timer)定時器 定時器可以對輸入的時鐘進行計數,并在計數值達到設定值時觸發中斷 16位計數器、預分頻器、自動重裝寄存器的時基單元,在72MHz計數時鐘下可以實現最大59.65s的定時 不僅具備基本的定時中斷功能&#xff…

pytorch實現基于Word2Vec的詞嵌入

PyTorch 實現 Word2Vec(Skip-gram 模型) 的完整代碼,使用 中文語料 進行訓練,包括數據預處理、模型定義、訓練和測試。 1. 主要特點 支持中文數據,基于 jieba 進行分詞 使用 Skip-gram 進行訓練,適用于小數…

【數據結構】_鏈表經典算法OJ(力扣/牛客第二彈)

目錄 1. 題目1:返回倒數第k個節點 1.1 題目鏈接及描述 1.2 解題思路 1.3 程序 2. 題目2:鏈表的回文結構 2.1 題目鏈接及描述 2.2 解題思路 2.3 程序 1. 題目1:返回倒數第k個節點 1.1 題目鏈接及描述 題目鏈接: 面試題 …

pytorch基于 Transformer 預訓練模型的方法實現詞嵌入(tiansz/bert-base-chinese)

以下是一個完整的詞嵌入(Word Embedding)示例代碼,使用 modelscope 下載 tiansz/bert-base-chinese 模型,并通過 transformers 加載模型,獲取中文句子的詞嵌入。 from modelscope.hub.snapshot_download import snaps…

爬蟲基礎之爬取某站視頻

目標網址:為了1/4螺口買小米SU7,開了一個月,它值嗎?_嗶哩嗶哩_bilibili 本案例所使用到的模塊 requests (發送HTTP請求)subprocess(執行系統命令)re (正則表達式操作)json (處理JSON數據) 需求分析: 視頻的名稱 F12 打開開發者工具 or 右擊…

DeepSeek R1本地化部署 Ollama + Chatbox 打造最強 AI 工具

🌈 個人主頁:Zfox_ 🔥 系列專欄:Linux 目錄 一:🔥 Ollama 🦋 下載 Ollama🦋 選擇模型🦋 運行模型🦋 使用 && 測試 二:🔥 Chat…

【linux網絡(5)】傳輸層協議詳解(下)

目錄 前言1. TCP的超時重傳機制2. TCP的流量控制機制3. TCP的滑動窗口機制4. TCP的擁塞控制機制5. TCP的延遲應答機制6. TCP的捎帶應答機制7. 總結以及思考 前言 強烈建議先看傳輸層協議詳解(上)后再看這篇文章. 上一篇文章講到TCP協議為了保證可靠性而做的一些策略, 這篇文章…

DeepSeek 遭 DDoS 攻擊背后:DDoS 攻擊的 “千層套路” 與安全防御 “金鐘罩”

當算力博弈升級為網絡戰爭:拆解DDoS攻擊背后的技術攻防戰——從DeepSeek遇襲看全球網絡安全新趨勢 在數字化浪潮席卷全球的當下,網絡已然成為人類社會運轉的關鍵基礎設施,深刻融入經濟、生活、政務等各個領域。從金融交易的實時清算&#xf…

二、CSS筆記

(一)css概述 1、定義 CSS是Cascading Style Sheets的簡稱,中文稱為層疊樣式表,用來控制網頁數據的表現,可以使網頁的表現與數據內容分離。 2、要點 怎么找到標簽怎么操作標簽對象(element) 3、css的四種引入方式 3.1 行內式 在標簽的style屬性中設定CSS樣式。這種方…

第三篇:模型壓縮與量化技術——DeepSeek如何在邊緣側突破“小而強”的算力困局

——從算法到芯片的全棧式優化實踐 隨著AI應用向移動終端與物聯網設備滲透,模型輕量化成為行業核心挑戰。DeepSeek通過自研的“算法-編譯-硬件”協同優化體系,在保持模型性能的前提下,實現參數量與能耗的指數級壓縮。本文從技術原理、工程實…

C++編程語言:抽象機制:泛型編程(Bjarne Stroustrup)

泛型編程(Generic Programming) 目錄 24.1 引言(Introduction) 24.2 算法和(通用性的)提升(Algorithms and Lifting) 24.3 概念(此指模板參數的插件)(Concepts) 24.3.1 發現插件集(Discovering a Concept) 24.3.2 概念與約束(Concepts and Constraints) 24.4 具體化…

DeepSeek-R1本地部署實踐

一、下載安裝 --Ollama Ollama是一個開源的 LLM(大型語言模型)服務工具,用于簡化在本地運行大語言模型,降低使用大語言模型的門檻,使得大模型的開發者、研究人員和愛好者能夠在本地環境快速實驗、管理和部署最新大語言…

AI技術路線(marked)

人工智能(AI)是一個非常廣泛且充滿潛力的領域,它涉及了讓計算機能夠執行通常需要人類智能的任務,比如感知、推理、學習、決策等。人工智能的應用已經滲透到各行各業,從自動駕駛到醫療診斷,再到推薦系統和自…

【leetcode詳解】T598 區間加法

598. 區間加法 II - 力扣(LeetCode) 思路分析 核心在于將問題轉化, 題目不是要求最大整數本身,而是要求解最大整數的個數 結合矩陣元素的增加原理,我們將抽象問題轉為可操作的方法,其實就是再找每組ops中…

【最后203篇系列】004 -Smarklink

說明 這個用來替代nginx。 最初是希望用nginx進行故障檢測和負載均衡,花了很多時間,大致的結論是:nginx可以實現,但是是在商業版里。非得要找替代肯定可以搞出來,但是太麻煩了(即使是nginx本身的配置也很煩…

完全卸載mysql server步驟

1. 在控制面板中卸載mysql 2. 打開注冊表,運行regedit, 刪除mysql信息 HKEY_LOCAL_MACHINE-> SYSTEM->CurrentContolSet->Services->EventLog->Application->Mysql HKEY_LOCAL_MACHINE-> SYSTEM->CurrentContolSet->Services->Mysql …