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