mattermost數據庫存儲部分的結構圖以下:
sqlsupplier是store這個接口的實現部分,mattermost將對數據庫操做的部分作了封裝,因此你只須要按照他給的格式去操做就能夠了。每一個模塊的store都繼承了Sqlstore的方法,而且實現添加本身須要添加的store接口。
每一個模塊的store裏面都有全局的New方法用於建立模塊的store對象
每一個模塊的model提供對於數據庫表裏面的每項的數據。以User爲例。
userStore的實如今:user_store.go 裏面,建立UserStore的函數爲:NewSqlUserStore,並將結果返回。在Sqlsuplier裏面會調用此方法:
supplier.oldStores.user = NewSqlUserStore(supplier, metrics)
UserModel放在:user.go裏面,裏面定義了user的各個字段
外部如何使用:
全局的Context對象裏面包含了store的實例即sqlsupplier,sqlsupplier裏面有各個模塊的store實例,那麼就能夠調用模塊的方法進行數據庫表的操做了。