1
我有一个非常大的桌子,我想每年有一张桌子。我需要用唯一的模型来表示多个表。根据年份的不同,我已经完成了写作,但我不知道如何使用orm读取多个表格。任何建议?我使用Laravel 5.3如何用唯一模型表示多个表?
class Management extends Model
{
protected $table = 'management_2017';
public function setTableYear($date = null){
if (is_null($date))
$date = \Carbon::now();
if ($date->year >= 2017)
$this->setTable('management_' . $date->year);
}
}
class MyController extends Controller
{
public function saveManagement(){
$management = new Management();
$management->setTableYear();
//... set attributes
$management->save();
}
public function readManagement(Request $request){
$idManagement = $request->get('managementId');
// I dont know how to set a table here. Default table is 'management_2017'
$management = Management::find($idManagement);
}
}
我想你不能只在桌子上放一个YEAR字段? –
这不是一个设计得很好的数据库,@BenjaminBrasseur有一个很好的例子来说明如何让这个解决方案更具前瞻性。 –
@BenjaminBrasseur号码表非常大。此时要做好备份是很困难的。这个想法是,2018年1月1日,表'management_2017'是只读的。 – learango