关于数据库中一些数字字段定义的思考
在开发中我们常常会遇到如状态(status)类的字段,经常我们会定义1:正常,2:关闭,0:未定义等类型
尝试一:
曾经我在Model中使用 const 来定义,如:
class User {
const STATUS_OPEN = 1;
const STATUS_CLOSE = 2;
public function getStatus()
{
return [static::STATUS_OPEN=>'开启',static::STATUS_CLOSE=>'关闭']
}
}
但后来我使用Repository,发现在Model中定义并不合适,假设我要换Model来绑定Repository
尝试二:
class UserRepository {
//注入不同的model难道每个都要写?
//代码同上
}
尝试三:
将这些状态类拆分成单独的类
/**
* @return array
*/
public function getAttributes(): array
{
return [
static::a()=>'D1',
static::b()=>'E1',
];
}
/**
* @return int
*/
public static function a() : int
{
return 2;
}
/**
* @return int
*/
public static function b() : int
{
return 1;
}
但发现此种方法也不太合适,不知道大家平时怎么定义的。
PS:我的想法是,在Model中的数据并不会使用Controller调用,因为我一直使用的是Repository,了为解耦Controller和Model,所以在Controller中使用类型Model::STATUS_OPEN并不合适,而在Repository中定义,如果此类字段太多,则会使Repository中过于臃肿,所在考虑再次拆分成单独类。
最后:希望大家给点意见,谢谢!!!
推荐文章: