> ### 模型定義
* [ ] 模型采用“一個主模型”關聯若干子模型的開發方式
* 一個主模型并不等于一張表或一個模型,可能會是多個表和模型,通過模型關聯組合為一個模型
* 主模型的數據由基類自動維護,我們只關心擴展模型的數據維護
* 每張主表會有一個標識mark字段,通過此字段可以將主表進行橫向切分,將切分出來的主表單獨維護,方便閱讀和后期管理
* 另外,如何主模型存在軟刪除字段,那么關聯模型也必須加入軟刪除字段,不然數據會有丟失
* 主表和擴展表之間采用關聯模型進行維護
> ### 開發
* [ ] 開發一個主模型的步驟
1. 只需要繼承BaseModel即可 ,然后專心維護自己模型的邏輯
`快速生成主模型的方式,根目錄下運行命令行:php think mainmodel Test , 將Test換成自己模型的名字`
```
BaseModel基類中做的事情:
1、定義$mark 標識屬性, 默認為null ,此屬性用來區分不同的擴展表,需要在切分后的主模型中重寫
2、定義全局的查詢范圍標識 , protected $globalScope?=?['mark'];
3、全局添加查詢條件 public function scopeMark($query)
4、當主模型進行寫入操作時,自動注入標識 public static functionon BeforeInsert($model)
```
2. 將主模型進行水平切分,其實與定義的主模型完全一致,只是加入了自定義的標識mark,然后專心維護該模型邏輯。