The idea of using table sharding in the thinkphp project (applicable to Big Data) php code
/*** Get the table sharding name * @ param $ tableName basic table name */function getSubTable ($ tableName, $ companyId = null) {// Put 50 group data in each table $ table_user = 50; // confirm the companyInfo array if (null ===$ companyId) // unspecified, obtain {$ companyInfo = M ('Company')-> find (COMPANY_ID);} else {$ mCompany = M ('Company') based on the session '); $ companyInfo = $ mCompany-> where ('Id = '. $ companyId)-> find ();} // if (isset ($ companyInfo ['Table _ name' ]) & $ CompanyInfo ['Table _ name']! = '') {Return $ tableName. '_'. $ companyInfo ['Table _ name'];} // if (! $ CompanyInfo) {return $ tableName;} // No id is specified for the company Table. The table name (company id % 50) is returned by algorithm) = Shard id $ total = $ companyInfo ['id'] % $ table_user; // in short-circuit mode, the current plane $ total ==== 0 is true. when it is true, $ total = 1 $ total === 0 & $ total = 1; return $ tableName. '_'. $ total ;}