多种模型关联关系留言,你会怎么设计这个表?
微信公众号接收普通消息包含:文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息等七种。
如果用多态一对一,分表建立8张表,message、text、images、voice……等等以此类推,在查询message表列表数据时候 msgable = null,无法取得text、images、voice……等其他关联表的数据。
我肯定错了,不应该用这种关联关系,请指教。
class WechatMessage extends Model
{
/**
* 获取拥有此留言的模型。
*/
public function msgable()
{
return $this->morphTo();
}
图片消息、语音消息、视频消息、小视频消息存的都是路径,路径是文本,其他三个消息类型也都是文本全部都存在一张表就可以了
然后用type来区分,可能就地理位置有点不一样 可以存成json
关联模型虽然好,但是不要陷进去无法自拔。这样容易使得简单问题复杂化