请问以下表结构如何进行关联?

表A是主表
表A可能关联表B、也可能关联表C

这种应该如何设计和关联?

感觉无法用多态.我理解的多态是”从表” 属于多个 “主表”.

而我的要求是 “主表” 包含多个”从表”.虽然”感觉”差不多.

images
string imageable_id
integer imageable_type - string
而我的情景 : 我的主表A 主需要存 imageable_type 不需要存 imageable_id
这样不就无法使用多态了?

不知道我是否描述清楚.请大神们指教下.谢谢.

、缪尔
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

表A = 评论表, 表B = 贴子,表C = 视频。 可以参考一下文档。 一对多(多态)关联

2年前 评论
丶缪尔 (楼主) 2年前
丶缪尔 (楼主) 2年前

你是有一个主表中,存type,1,2 然后,存上对应的B,C表的ID 然后还想在主表模型是,使用模型关联嘛?

2年前 评论
丶缪尔 (楼主) 2年前

主表不存B C的id.是B C 存主表的id. B C 属于A

这用什么多态啊,直接一对一或者一对多的关联就是了

例如:

表 A :id 、name、age ……

表 B :id、 a_id、title、content ……

表 C :id 、a_id、avatar ……

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class A extends Model
{
    public function b()
    {
        return $this->hasMany(B::class);
    }

    public function c()
    {
        return $this->hasOne(C::class);
    }

}

class B extends Model
{
    public function a()
    {
        return $this->belongsTo(A::class);
    }
}

class C extends Model
{
    public function a()
    {
        return $this->belongsTo(A::class);
    }
}
2年前 评论
丶缪尔 (楼主) 2年前
Su (作者) 2年前
丶缪尔 (楼主) 2年前
丶缪尔 (楼主) 2年前
Su (作者) 2年前
Su (作者) 2年前
丶缪尔 (楼主) 2年前
Su (作者) 2年前
丶缪尔 (楼主) 2年前

A 表的记录可能关联 B 也可能关联 C 就是多态一对一。 A 表必须要添加 a_id 字段 ,用 a_able 字段判断关联是 B 还是 C 模型, a_id 字段关联 BC 的记录

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!