Topic 和 User 为什么是一对一关系?

教程里说,Topic和User,以及Topic和Category都是一对一关系。
但是,一个User可以有很多Topic,一个Category下也可以有很多Topic。
所以,难道不应该是一对多吗?
谢谢~

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 10

人家说的是一个话题拥有一个作者哦,不是说一个作者拥有一个话题。

4年前 评论

file
不是很明白。教程里说是一对一关系。一对一关系的意思,是不是一个话题拥有一个作者,同时一个作者也只拥有一个话题,这才叫一对一呢?但是明显一个作者可以拥有很多话题,所以觉得这个点是不是不太对?

4年前 评论

那一对多是什么意思,你先解释下。

一个妈妈对应多个子女,同时,多个妈妈对应一个子女?😂

搞清楚左右两边是谁就可以了,这是语文的范畴。

4年前 评论

file
这不说得很清楚吗?
一对多就是:一个book(妈妈)可以有很多page(子女),但是一个page只能在一个book里。
按你说的,如果一对多是“一个妈妈对应多个子女,同时,多个妈妈对应一个子女”,那你先解释一下 多对多 是什么?
这确实是语文的范畴。

4年前 评论

我的问好都被你省略啦。你的逻辑有点混乱,说维基说得很清楚,但是自己又再问 Topic 和 User 为什么是一对一关系。都回复你两次了,感觉还在怪我,都不虚心学习。 :joy:

人家说的 Topic 和 User 是一对一关系,这个没错。

但是人家说的又不是 User 和 Topic 是一对一关系。不要凭空捏造了,这里的重点是 Topic 和 User、Category 是什么关系。

4年前 评论

@likunyan
你犯了一个最基本的错误,就是你认为模型关系是单向的。
错了,模型关系是双向的。
正确的理解是:如果说A与B是一对一,那么同时包含的意思是:B与A也是一对一的关系。
你的理解是,A与B是一对一,但是B与A可以是一对多。
你错了。这都是数据库常识,凭空捏造的是你。

同理,如果A与B是一对多,那么B与A就必须是多对一。这是正确的理解。

4年前 评论

复习了一遍文档。我也强烈认为教程这里写错了。正确的写法应该是『一对多 反向对应关系』,而不是『一对一 对应关系』。

4年前 评论

@holyLight 是的。

另外,模型关系确实有单向、双向,不单只有双向。

我说凭空捏造不是嘲讽人或贬低人的意思,只是加重下我的看法:文章是单写某对某的对应关系,而没有写反向的对应关系。这个是基于沟通需要,你凭空捏造出来一个罪状反向过来说人家凭空捏造就不知道是什么用意了。

一对一,hasOne 对应 belongs,那 belongs 为什么不直接也写为 hasOne?

一对多,那么为什么不直接写为 hasMany 和 hasMany。

一个妈妈对应多个子女,而子女属于(belongs)一个妈妈。

4年前 评论

@likunyan
恕我没听说过还有单向的。我大学上的数据库课程以及阅读的教材,都是双向的。
麻烦你出示一下单向的出处,出自哪本教材。
另外,我感觉你没有真正系统学过SQL,只是在从Laravel的定义去反推SQL数据库的原理。
这个是不对的。
SQL语句是根本,Laravel只是使用者而已。
如果Laravel使用得不合理,那是Laravel自己的问题。
比如你举的例子,“一对一,hasOne 对应 belongs,那 belongs 为什么不直接也写为 hasOne?”,我觉得有道理,确实应该也写成hasOne,这样才能体现正反两方都是一对一。但这是Laravel自己的定义不清晰,不能反推出SQL语句是“单向”的。

4年前 评论
Summer

确实表达不够清楚,已修改如下,以原文为准。

新增 category 和 user 的模型关联:

  • category—— 一个话题属于一个分类;
  • user —— 一个话题属于一个作者。
4年前 评论

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