在models.py中大部分的class對應數據庫中的表,那么我們就從AuditMixinNullable這個類開始我們的模型解析。
AuditMixin:這個類是FAB(Flask AppBuild)中的,它的作用是向子類中加入create_by_fk、create_by、changed_by_fk、changed_by、changed_on、create_on等屬性,並且這些值不能為空
AuditMixinNullable:這個類是AuditMixin子類,但是對AuditMixin類的屬性進行了修改,讓AuditMixin相關屬性值可以為空
AuditMixinNullable的子類:AuditMixinNullable的13個子類,對應數據庫中13張表,類與表的對應關系如下:
Model類 |
數據表 |
說明 |
Database |
dbs |
對應superset中對數據庫連接配置。 |
SqlaTable |
tables |
dbs中數據庫引入到superset中的表,與dbs表是一對多的關系。 |
TableColumn |
table_columns |
對應tables中表的數據字段,與tables表是一對多的關系。 |
SqlMetric |
sql_metrics |
對表字段進行可聚合緯度度量,與tables表是一對多的關系。 |
Slice |
slices |
切片表。 |
|
slice_user |
slices與ab_user的關聯表,slices與ab_user多對多關系 |
Dashboard |
dashboards |
儀表盤表。 |
|
dashboard_slices |
儀表盤與切片之間的關聯表,由此可以看出,slices表與dashboards表是多對多的關系。 |
|
dashboard_user |
dashboards與ab_user的關聯表,dashbaoards與ab_user是多對多關系。 |
DruidCluster |
clusters |
druid集群配置表 |
DruidDatasource |
datasources |
druid的數據源配置,與clusters是一對多關系 |
DruidColumn |
columns |
druid數據源的字段表,與datasource是一對多關系 |
DruidMettic |
metrics |
druid數據源的度量表,與datasource是一對多關系 |
DatasourceAccessRequest |
access_request |
訪問datarource和dbs訪問請求表 |
Url |
url |
用於短url功能 |
CssTemplate |
css_templates |
css的模板表 |
對比ORM類,查看對應數據庫表,我們發現以上16張表除了dashboard_slices、dashboard_user、slice_user關聯表之外,其余13張表中都有created_by_fk和changed_by_fk這2個字段,AuditMixin及其子類AuditMixinNullable的功能不言而喻。
Datasource不對應數據庫中的表,它的功能是提供其子類SqlaTable、DruidDatasource類公用的的部分。
Model類 |
數據表 |
說明 |
Query |
query |
記錄在SQL Lab菜單中,SQL Query子菜單中執行Run Query的查詢歷史 |
FavStar |
favstar |
用於記錄用戶喜歡的儀表盤或切片 |
Log |
logs |
記錄superset對數據庫的操作 |
KeyValue |
keyvalue |
用戶任何類型的鍵值對存儲 |
此外,在models.py中還有其它單獨的類需要介紹,請看下面:
Model類 |
說明 |
QueryResult |
此類用於在SQL Lab菜單中,SQL Query子菜單中執行Run Query時對查詢結果的反饋。 |
JavascriptPostAggregator |
|
下面介紹下fab中的用戶權限的實體類:8
Model類 |
數據表 |
說明 |
User |
ab_user |
用戶表。 |
RegisterUser |
ab_register_user |
注冊用戶表。 |
Role |
ab_role |
角色表。 |
|
ab_user_role |
用戶與角色的關聯表,ab_user與ab_role是多對多關系。 |
|
ab_permission_view_role |
權限視圖與角色的關聯表,ab_permission_view與ab_role是多對多關系 |
Permission |
ab_permission |
權限表 |
PermissionView |
ab_permission_view |
權限與視圖菜單的關聯表,ab_permission與ab_view_menu是多對多關系 |
ViewMenu |
ab_view_menu |
視圖菜單表 |
表之間的關聯圖