简介
博客系统架构众所周知,眼前看的就是,最基础的应该有那些熟悉?有标题,有内容,并且能知道是谁发布的,并且用户可以对该博客进行评论,这就够了
所以我们可以得出,需要有用户表User 博客表Blog 评论表Comment,本篇文章以Blog与Comment之间的多态关联举例,描述Laravel多态关联的妙用
表结构设计
最简单的表结构可能是这样的:
Blog:
id
title
body
Comment:
id
body
blog_id //用于指向博客
可这样就遇到了一个问题,以后可能还开发新闻功能,新闻也可以评论,这样就需要改表结构:
Comment:
id
body
blog_id
article_id
如果再出现视频、动态等一系列可评论的模块,那评论表的冗余字段就太多了
Comment:
id
body
blog_id
article_id
video_id
xxx_id
...
重点来了
Laravel给的解决方案是这样的:
Comment:
id
user_id
body
commentable_id //关联对象ID
commentable_type //关联对象类型
这样就能够使用同一张Comment
表对各个模块进行评论–>多态关联
实现
Comment
表和Blog<