1. 数据库的状态
地球号核心资源遵循标准的状态编号
编号 | 名称 | 修改 | 说明 |
---|---|---|---|
0 | 正常 | 可以 | 资源处于正常状态 |
1 | 冻结 | 不可 | 资源处于disable状态 |
2 | 下线 | 不可 | 资源处于offline状态,这个状态可以删除 |
3 | 删除 | 不可 | 资源处于被软删除状态 |
God/Admin/Ceo/Butler可以把资源设置为冻结
,只有他们才可以解冻,这个就是上层控制下层的唯一方法。
[!note] 地球号同时维护硬删除和软删除两种删除。为了设计方便,要求各资源只有m5d是唯一的,其它name等都是可相同的,这样就可以维持软删除的唯一性。
graph TD;
ENABLED(正常状态);
DISABLED(冻结状态);
OFFLINE(下线状态);
DELETO(删除状态);
ENABLED --关闭--> DISABLED;
DISABLED --下线--> OFFLINE;
OFFLINE --上线--> DISABLED;
OFFLINE --删除--> DELETO;
DELETO --回收--> OFFLINE;
DISABLED --打开--> OFFLINE;
graph TD;
ST_ENABLED;
ST_DISABLED;
ST_OFFLINE;
ST_DELETO;
ST_OFFLINE --DIS(God)--> ST_DISABLED;
ST_ENABLED --DIS(God)--> ST_DISABLED;
ST_ENABLED --OFF(None)--> ST_OFFLINE;
ST_OFFLINE --PUB(None)--> ST_ENABLED;
ST_OFFLINE --DOL(None)--> ST_DELETO;
ST_DELETO --RCC(Root)--> ST_OFFLINE;
ST_DISABLED --ENB(God)--> ST_OFFLINE;
graph LR;
STATE_ENABLED;
STATE_DISABLED;
STATE_OFFLINE;
STATE_DELETO;
style STATE_ENABLED fill:#0c0,stroke:#393,stroke-width:2px;
style STATE_DISABLED fill:#f00,stroke:#c00,stroke-width:2px;
style STATE_OFFLINE fill:#ccc,stroke:#999,stroke-width:2px;
style STATE_DELETO fill:#03f,stroke:#306,stroke-width:2px;
STATE_OFFLINE --God.DIS --> STATE_DISABLED;
STATE_ENABLED --God.DIS --> STATE_DISABLED;
STATE_ENABLED --None.OFF--> STATE_OFFLINE;
STATE_OFFLINE --None.PUB--> STATE_ENABLED;
STATE_OFFLINE --None.DOL--> STATE_DELETO;
STATE_DELETO --Root.RCC--> STATE_OFFLINE;
STATE_DISABLED --God.ENB --> STATE_OFFLINE;
</div>
[!note|label:详情和私详状态的区别] 私详只能是None发出,如果发起者没有None角色,即使拥有God角色,也不会返回。因为它仅仅服务于None角色,会返回一些只有None角色自己作为创建者能看到的字段。