您好,登錄后才能下訂單哦!
這篇文章主要講解了“saas如何用php實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“saas如何用php實現”吧!
saas用php實現的方法:1、創建分管后臺并分配開通賬號;2、將tp的數據庫操作方法進行改造成公共方法;3、后臺使用session進行存儲“saas_id”,并將固定方法進行查詢;4、將請求方法封裝并固定增加“saas_id”即可。
關于PHP通過分表實現saas功能
先淺談下我對saas的理解,saas就是相當與把自己的項目當作一個平臺,通過分賬號的手段讓子用戶使用平臺功能
首頁我嘗試第一種方式是通過將每個表都增加一個saas_id進行區分,目前我一個表數據量大概在6萬條,如果增加10家用戶使用那就是60w條,無論是看還是改效率肯定都不是特別的高,因為后臺數據量增加后還考慮按年度進行分表,所有就放棄這種方法 其次就想的是分庫,因為按照年度進行分表在安照不同子用戶進行分庫是最合適不過的,但是由于種種原因就沒有使用這個方法, 最后使用的是分表。因為這個項目功能已經開發完成,現在需要的是大概是這幾步
第一步,就寫個開通賬號的功能,這里自己可以寫個分管后臺去分配開通賬號,或者寫個小程序h6等讓使用者自己去申請,下面是我分表生成數據庫的方法
$exist = Db::query('show tables like "ms_user' . $id . '"');
if (!$exist) {
方法1: $sql = <<<sql
CREATE TABLE ms_user{$id} LIKE ms_user;
sql;
Db::execute($sql);
方法二: $sql = <<<sql
CREATE TABLE ms_apply{$id} LIKE ms_apply;
sql;
Db::execute($sql);
$sql = <<<sql
INSERT ms_apply{$id} SELECT * FROM ms_apply;
sql;
Db::execute($sql);
die;
}
}
大概原理就是,先看看這個saas_id有無已將生成的數據表了,以防萬一! 其中內容不需要復制內容到新表的就按照方法一直接復制表結構就行,像是一些公共表需要將公共內容復制到新表中的就需要按照方法二的第二步將數據添加到新包
下面是分表后的表結構:
第二步我是將tp的數據庫操作方法進行改造成公共方法以方便替換之前代碼這樣看似屌絲其實省不少力氣
//db類
function dbs($table=''){
$table=$table.session('user.saas_id');
return Db::name($table);
}
function dba($table=''){
$table=$table.input('param.saas_id');
return Db::name($table);
}
后臺使用登錄后使用session進行存儲saas_id查詢將固定方法進行查詢,前臺將請求方法封裝固定增加saas_id字段請求。
感謝各位的閱讀,以上就是“saas如何用php實現”的內容了,經過本文的學習后,相信大家對saas如何用php實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。