uid 通常是数字,取模就可以了

解决方案 »

  1.   

    substr('1456', -1);//6根据uid的个位数就知道存在哪个表(0-9,10个表)
      

  2.   

    这需要代码吗?
    令 $uid 为 uid 的值, $m 为日志表数
    则表名 $tbl = '前缀' . ($uid % $m)
      

  3.   

    不知道你的多个表的命名规则 是什么? 是 200W 个用户,随机分配日志表,还是这个用户被创建时,就要指定放到哪张表?1. 如果是随机的话,最好表的命名有一定的规则 ,比如:log001 , log002 ..., log100 这样子。直接用 rand() 加工一个数字出来,再拼成表名称;
    2. 如果用户被创建时,就指定了写哪个表,就更好办了,在用户登录时,就把这个表名写到 session 中,写日的时候,直接拼接;
    3. 如果,你想根据用户的第一位字符来确定,也可以采用方法 2 ;
      

  4.   

    有没有代码生成器,自动生成出出来表,假如我现在200W会员,生成300张表,谁有代码可以先把表生成出来,然后根据uid自动计算出来要insert那个表名?请给与代码
      

  5.   

    你先要定义好一个表,然后
    for($i-0; $i<300; $i++)
      mysql_query("carete table log_$i select * from 表 where 1=0“);
    300个表就建好了插入时的表名计算我在 #6 已经给了