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实例,那么就能够调用模块的方法进行数据库表的操做了。