使用Json的Laravel/PHP MySQL一对多关系
首先,以Json列的形式存储一对多关系是一个好主意吗?如果是的话,我如何用laravel编写查询来检索数据 例: 我有活动表和垂直表 活动表使用Json的Laravel/PHP MySQL一对多关系,php,mysql,json,laravel,laravel-5,Php,Mysql,Json,Laravel,Laravel 5,首先,以Json列的形式存储一对多关系是一个好主意吗?如果是的话,我如何用laravel编写查询来检索数据 例: 我有活动表和垂直表 活动表 id | activity | verticals 1 | Dusting | [1,2] 2 | Oiling | [3] 3 | Mopping | [1,2,3] 垂直表 id | vertical 1 | House Keeping 2 | Pantry 3 | Engineering & Machinery 现在
id | activity | verticals
1 | Dusting | [1,2]
2 | Oiling | [3]
3 | Mopping | [1,2,3]
垂直表
id | vertical
1 | House Keeping
2 | Pantry
3 | Engineering & Machinery
现在,在显示活动列表的仪表板中,结果应该是
id | activity | verticals
1 | Dusting | Housekeeping, Pantry
2 | Oiling | Engineering & Machinery
3 | Mopping | Housekeeping, Pantry, Engineering & Machinery
现在,在传统的非json方法中,我会使用laravel Eloquent的self::hasMany,但是如果使用json,我可以这样做吗
是否也可取?我创建了一个包含JSON关系的包: 您可以创建如下多对多关系:
类活动扩展模型
{
使用\Staudenmeir\EloquentJsonRelations\hasjsonrelations;
受保护的$casts=[
“垂直”=>“json”,
];
公共职能垂直()
{
返回$this->belongsToJson(垂直::类,“垂直”);
}
}
类垂直扩展模型
{
使用\Staudenmeir\EloquentJsonRelations\hasjsonrelations;
公共职能活动()
{
返回$this->hasManyJson(Activity::class,'verticals');
}
}
我创建了一个包含JSON关系的包:
您可以创建如下多对多关系:
类活动扩展模型
{
使用\Staudenmeir\EloquentJsonRelations\hasjsonrelations;
受保护的$casts=[
“垂直”=>“json”,
];
公共职能垂直()
{
返回$this->belongsToJson(垂直::类,“垂直”);
}
}
类垂直扩展模型
{
使用\Staudenmeir\EloquentJsonRelations\hasjsonrelations;
公共职能活动()
{
返回$this->hasManyJson(Activity::class,'verticals');
}
}
至少可以说,你的问题非常令人困惑。在数据库中保存json几乎是不可取的。@Amarnasan。。让我换一种说法,你能给我一个查询来获得仪表板结果吗?至少可以说,你的问题非常令人困惑。在数据库中保存json几乎是不可取的。@Amarnasan。。让我换一种说法,你能给我一个查询来获得仪表板结果吗