我有一个基本模型UserAccount
,代表第三方网站的用户帐户。根据站点的不同,需要与帐户一起存储不同的数据。而不是为每个站点设置一个完整的表,或者将数据设置为数组(这将是导航和维护的地狱)我正在考虑建立一个这样的关系,为每个帐户的数据设置一个单独的表:
用户帐户模型:id
,title
,username
,... channel_id
,channel_data_id
这样我就可以像这样设置数据的关系(其中channel data id指的是表中的行:
public function channel_data()
{
switch($this->channel_id)
{
case 1:
return $this->belongsTo(\App\Models\AmazonData::class, 'channel_data_id','id');
case 2:
return $this->belongsTo(\App\Models\EtsyData::class, 'channel_data_id','id');
....
}
这意味着channel_data
对于每个channel_id
都是不同的类型。这样做会有很大的缺点吗?在短期内我无法想到,因为视图可以打开通道ID并包含相关的子模板,控制器可以根据需要保存相关模型是否有更好的方法?