建議beego的ORM,可以實現表欄位註釋的新增

1272881215發表於2018-06-06

該問題我已經在beego庫提交 issues 了==> https://github.com/astaxie/beego/issues/3188


習慣使用 Beego 自帶的 ORM,因為使用起來很方便,但是個人覺得糾結的是沒法生成資料表的欄位註釋。 表欄位註釋很重要,DBA 在維護資料庫的時候,就很容易知道表欄位的含義,而 beego 的 orm 自動生成的資料表就沒有表註釋。 我們公司這邊,因為使用 beego 自動生成的資料表欄位沒註釋,要求新增表註釋,目前很糾結。 比如我建立的管理員表,struct 如下:

//管理員表
type Admin struct {
    Id        int
    Username  string    `orm:"unique;size(50)"` //管理員使用者名稱
    Name      string    `orm:"size(30)"`            //姓名
    Password  string    `orm:"size(32)"`                        //密碼
    Email     string    `orm:"size(100);default()"`
    Mobile    string    `orm:"size(11);default()"` //手機號碼
    Status    bool      `orm:"default(true)"`                    //管理員狀態,false表示禁用
    CreatedAt time.Time //建立時間
    UpdatedAt time.Time //更新時間
}

我在開發程式碼的時候,我是可以知道表欄位及其含義的,但是 DBA 在維護資料庫的時候不知道啊,而且如果要到資料庫找到這個欄位,然後手動把註釋新增上去,那就相當於同樣的事情要做兩遍。 beego 的 ORM 都能實現用default來設定欄位的預設值,那幹嘛不通過comment來實現表欄位的註釋呢? 比如上面建立管理員的 struct,我完全可以這樣定義:

//管理員表
type Admin struct {
    Id        int
    Username  string    `orm:"unique;size(50);comment(管理員使用者名稱)"`
    Name      string    `orm:"size(30);comment(姓名)"` 
    Password  string    `orm:"size(32);comment(密碼)"`
    Email     string    `orm:"size(100);default();comment(管理員郵箱)"`
    Mobile    string    `orm:"size(11);default();comment(手機號碼)"`
    Status    bool      `orm:"default(true);comment(管理員狀態,false表示禁用)"` 
    CreatedAt time.Time `orm:"comment(建立時間)"`
    UpdatedAt time.Time  `orm:"comment(建立時間)"`
}

然後在自動建表的時候,帶上comment裡面的註釋去生成資料表。 這樣,不管是程式設計師在維護程式碼,還是 DBA 在維護資料庫,那不是麻煩事。

更多原創文章乾貨分享,請關注公眾號
  • 建議beego的ORM,可以實現表欄位註釋的新增
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章