Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用ids数组vs联接表Laravel雄辩_Mysql_Laravel_Eloquent - Fatal编程技术网

Mysql 使用ids数组vs联接表Laravel雄辩

Mysql 使用ids数组vs联接表Laravel雄辩,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,我正在创建一个与MySQL DBMS连接的Laravel应用程序,其中我有三种模型: 产品 ProductGallery 文件 我也有以下关系 一个产品有一个产品库 一个ProductGallery有许多文件 我的问题是: 如果我将图像作为文件ID数组存储在ProductGallery中,可以吗 而不是创建联接表或在文件模型中使用库id public function setImagesAttribute($images) { $this->attr

我正在创建一个与MySQL DBMS连接的Laravel应用程序,其中我有三种模型:

  • 产品
  • ProductGallery
  • 文件
我也有以下关系

  • 一个产品有一个产品库
  • 一个ProductGallery有许多文件
我的问题是: 如果我将图像作为文件ID数组存储在ProductGallery中,可以吗 而不是创建联接表或在文件模型中使用库id

    public function setImagesAttribute($images)
    {
        $this->attributes['images'] = serialize($images);
    }

    public function getImagesAttribute()
    {
        if (empty($this->attributes['images']) || is_null($this->attributes['images'])) return [];

        return unserialize($this->attributes['images']);
    }
我问这个问题是想知道这种方法是否有副作用
将来可能会有与文件相关的其他模型模型(类别可能具有特色图像文件等)。

在我看来,更好的选择是创建透视表。。因为进一步说,当你必须加入时,你需要拉数组,并且你必须在一个坏循环下执行一个查询

我还将在数组[find accepts array of id]上使用File::find()