我最近繼承了一個項目,其中數據庫的建模很有趣(即缺少一些索引和外鍵定義)。該項目使用 GORM,據我所知,這些模型具有正確定義所有內容的標簽。我想不出為什么使用 ORM 進行數據庫“建?!辈黄鹱饔玫脑?。我能得出的最接近的是性能,但就其運行所需的規模而言,這一點似乎沒有實際意義。以這種方式運行有什么缺點嗎?
1 回答

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
我知道在我的公司做同樣的事情的唯一缺點是:
互操作性 - 您需要使用 golang 來啟動和運行所有內容,因此,如果您的項目想要在新數據庫上使用另一種語言,那就有點奇怪了。
復雜的 SQL 東西 - 有時你會想要使用一個復雜的功能,可能很難編寫標簽(例如:復合索引要求所有字段上的標簽使用相同的索引名稱,但這在心理上解析很奇怪,而你不這樣做)不能決定順序)
遷移 - 如果您使用內置功能,
AutoMigrate
您可以創建表、列和索引,但不能添加默認數據或編寫數據轉換,也不會刪除列,也不會保留更改歷史記錄。如果所有開發人員都使用相同的開發數據庫,這并不是什么大問題,但如果您開始擁有單獨的數據庫,您可能也會開始保留遷移 sql 文件,您必須與 Gorm 分開管理。
我不后悔最初使用它,因為在一個地方開始聲明模型和 sql 更容易,但隨著我們的成長并開始使用更高級的 sql 功能和更多數據庫,我們不得不切換到實際模式定義和遷移。
- 1 回答
- 0 關注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消