数据库主从配置问题

关于数据主从配置问题。我找到了两个方案,但是不知道怎么实现更合理
使用版本是2.7.0
方案一
按照官方提供的视频是
1、配置dbs.php 然后copy 一份 dbs2.php
2、di 注入
$di->writedorm = new NotORMDatabase($di->config->get('dbs'), $di->debug);
$di->readrorm = new NotORMDatabase($di->config->get('dbs1'), $di->debug);
3、需要在模型里 重新实现getORM()方法 
见附件图
缺点:我每次使用model的时候都需要指定 read 还是 write
 
方案二
搜索后修改
1、配置dbs.php 然后copy 一份 dbs2.php
2、di 注入
$di->notorm = new NotORMDatabase($di->config->get('dbs'), $di->debug);
$di->readorm = new NotORMDatabase($di->config->get('dbs1'), $di->debug);
3、自定义 model 基类  
class BaseModel extends NotORM
{
protected function getORM($id = NULL)
{
if ($id == 'read') {
$table = $this->getTableName($id);
return \PhalApi\DI()->readorm->$table;
}
return parent::getORM($id);
}
}
4.使用的时候
    public function getList($where)
{
return $this->getORM('read')->select('*')->where($where)->fetchAll();
}
public function create($data)
{
$orm = $this->getORM()->insert($data);
return $orm->insert_id();
}
缺点:这个设置是 默认设置了主库,我需要读取从库的时候还需要指定 getORM('read')
疑问:在观看视频官方视频的时候说后面会进行优化,会自动识别主库还是从库。我想知道时候已经优化了。如果优化了需要怎么设置。如果没有优化,比较合理的方案又是哪种呢??
 
 
 
 
WX20190625-133116.png
已邀请:

dogstar - PhalApi创始人

赞同来自: ekliu

两个方案都可以,推荐第二种方案。读写方案,框架暂时还没很好的计划和方案。后面如有果,再来同步。

要回复问题请先登录注册