在laravel多对多关系的项目中,我应该把"value of attribute"放在数据库的哪个table中吗?

In laravel project with many to many relation, should I put the "value of attribute" in which table of database?

我有一个 laravel 项目,其中包含多对多关系和多语言。 我使用 Laravel-Translatable 多语言包。
此程序存储大量文件及其属性。
每个属性在多个文件之间共享。但是每个属性在每个文件中都有不同的值。
Table 他们的关系就像这张照片:tables diagram

我应该把 attribute_value 放在 table 中吗? 谢谢

attribute_value 添加到 attrib_file table。因为对于每个与文件的连接 attribute_value 应该是不同的。另一方面,每个文件存储属性值的数量。这就是为什么 attrib_file pivot table 最合适。 documentation:

中给出了如何从 pivot table 检索信息
$attr = App\Attribute::find(1);
foreach($attr->files as $file) {
  echo $file->pivot->attribute_value;
}

确保在您的关系方法中添加 ->withPivot('attribute_value') return $this->belongsToMany('App\Models\File') 结尾。在 Attribute 模型中应该是这样的:

..
public function files() {
    return $this->belongsToMany('App\Models\File')->withPivot('attribute_value');
}