论坛首页 入门技术论坛

Rails中如何支持数据库分表啊

浏览 3329 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-30  
就是一个model的数据存储在多个结构相同的表中,数据分散的规则可以是id主键的范围,应该怎么实现呢?
   发表时间:2007-06-03  
我很早以前的做法,我的表是按月份分的,在rails中用动态创建model的方式处理:

module Dynamic
   class << self
     def klass(table_name)
       tname = class_name_from_table(table_name)
       #see if it has already been defined
       const_missing(tname)
     rescue NameError
       define_klass(table_name)
     end

     def objeck(table_name)
       klass(table_name).new
     end

     private
       def class_name_from_table(table_name)
         Inflector.camelize(table_name)
       end

       def define_klass(table_name)
         tname = class_name_from_table(table_name)
         class_def = <<-end_eval
           class #{tname} < ActiveRecord::Base
             set_table_name('#{table_name}')
           end
         end_eval
         eval(class_def, TOPLEVEL_BINDING)
         const_get(tname)
       end
   end
end


使用样例: class ProjectController < ApplicationController include Dynamic

def index
   @projects = Dynamic.klass("projects1").find :all
   #Project.set_table("projects1")
   #@projects = Project.find :all
end

end


不知道 set_table_name 是不是直接就可以,没试过,如果可以就简单了一些。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics