thinkphp項(xiàng)目中使用分表的思路(適用于大數(shù)據(jù))
/**
* 獲得分表名
* @param $tableName 基礎(chǔ)表名
*/
function
getSubTable(
$tableName
,
$companyId
= null)
{
// 每張表中放50個(gè)集團(tuán)的數(shù)據(jù)
$table_user
= 50;
//確定 companyInfo數(shù)組
if
(null ===
$companyId
)
//未指定,根據(jù)session取
{
$companyInfo
= M(
'Company'
)->find(COMPANY_ID);
}
else
{
$mCompany
= M(
'Company'
);
$companyInfo
=
$mCompany
->where(
'id = '
.
$companyId
)->find();
}
//公司信息中 指定了table_name,直接取出返回
if
(isset(
$companyInfo
[
'table_name'
]) &&
$companyInfo
[
'table_name'
] !=
''
)
{
return
$tableName
.
'_'
.
$companyInfo
[
'table_name'
];
}
//公司信息不存在直接返回表名
if
(!
$companyInfo
)
{
return
$tableName
;
}
//company表未指定id,按算法返回表名 (公司id % 50) = 分表id
$total
=
$companyInfo
[
'id'
] %
$table_user
;
//短路模式 當(dāng)前面的 $total === 0 為真時(shí)候 $total = 1
$total
=== 0 &&
$total
=1;
return
$tableName
.
'_'
.
$total
;
}
推薦文章
2024-11-28
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩(wěn)定
產(chǎn)品高可用性高并發(fā)貼心
項(xiàng)目群及時(shí)溝通專業(yè)
產(chǎn)品經(jīng)理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽(yù)堅(jiān)持
10年專注高端品質(zhì)開(kāi)發(fā)聯(lián)系我們
友情鏈接: