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

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

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

class WechatMessage extends Model
{
    /**
     * 获取拥有此留言的模型。
     */
    public function msgable()
    {
        return $this->morphTo();
    }
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3

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

4年前 评论

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

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

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

4年前 评论

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