多种模型关联关系留言,你会怎么设计这个表?

微信公众号接收普通消息包含:文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息等七种。
如果用多态一对一,分表建立8张表,message、text、images、voice……等等以此类推,在查询message表列表数据时候 msgable = null,无法取得text、images、voice……等其他关联表的数据。

我肯定错了,不应该用这种关联关系,请指教。

class WechatMessage extends Model
{
    /**
     * 获取拥有此留言的模型。
     */
    public function msgable()
    {
        return $this->morphTo();
    }
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

图片消息、语音消息、视频消息、小视频消息存的都是路径,路径是文本,其他三个消息类型也都是文本全部都存在一张表就可以了

4年前 评论

然后用type来区分,可能就地理位置有点不一样 可以存成json

4年前 评论
waney (楼主) 4年前
mushu

关联模型虽然好,但是不要陷进去无法自拔。这样容易使得简单问题复杂化

4年前 评论

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