关系 - Relationships

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

在应用里面,不同的数据之间会存在某种关系。关系的类型也有很多种 ... 一对一,一对多,多对多,还有间接关系等等。在定义模型的时候,可以顺便去描述一起模型之间的关系,这样在应用里面,我们就可以很方便的去使用这些关系。

比如配偶,应该就是一对一的关系。王皓跟小雪就是一对一的关系,王皓的媳妇是小雪,小雪的老公是王皓。

一对多的关系比较常见 .. 像评论和电影之间就是一对多的关系 ... 一条评论只能属于一个电影 ... 但是一部电影可以拥有多条评论内容。再比如评论和用户之间也是一对多的关系 ... 一个评论只能属于某一个用户 ... 一个用户,可以创建多条评论。

多对多的关系会复杂一点 ... 电影和电影里面的工作人员,就是一种多对多的关系 ... 一部电影里面,会包含很多的工作人员 ... 一个工作人员很可能会参与多部电影。通常我们需要一个额外的间接的数据表去存储这种多对多的关系。

间接的关系是数据与数据之间,通过一个中间人建立起的关系。比如。国家,用户,还有评论,用户里面会包含用户所属的国家的 id 号,在评论里面会包含发布这条评论的用户的 id 号。现在,虽然国家和评论之间没有直接的关系 ... 但是通过用户这个中间人,我们可以找出某个国家发布的所有的评论内容 ...

多样化关系就是某种数据,可以属于其它的不同的数据类型。比如说图片,评论,还有电影 ... 在发布评论的时候,我们可以上传图片,在发布电影的时候,也可以上传图片...

在图片这个表里,可能有这样几个字段,图片的 id 号,图片的路径,还有图片的拥有者的 id 号,还有图片拥有者的类型,这个类型可能是评论,也可能是电影。

使用多样化的关系,我们可以找到某个电影的所有的图片,或者某个评论里面的所有的图片 ... 而且我们还可以判断出图片的拥有者的类型。

最后我们再来了解一种多对多的多样化关系。

文章,视频,还有标签。它们之间应该就是一种多对多的多样化关系。

文章可以拥有多个标签 ... 不同的文章可以使用同一个标签 ... 不同的视频也可以使用这个标签..

这种关系,通过需要这样几个表 ... 文章,视频,标签,还要有一个存储标签和它的拥有者的一个表。在这个表里,要存储一下标签的 id ,标签使用者的 id ,还有这个使用者的类型 ...

0:00
2:25
0:00
0:00
0:00
3:54

关系 - Relationships《 Laravel 数据库 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点