跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 最近在学习用 Django 做网站,遇到一个数据库设计的问题。作者表和文章表之间要加一个中间表存放两者关系吗?
未分類
15 5 月 2020

最近在学习用 Django 做网站,遇到一个数据库设计的问题。作者表和文章表之间要加一个中间表存放两者关系吗?

最近在学习用 Django 做网站,遇到一个数据库设计的问题。作者表和文章表之间要加一个中间表存放两者关系吗?

資深大佬 : glp664186796 0

我本来的想法是一个作者表一个文章表,文章表有一个外键是作者 id 。今天看到有人说应该设计一个中间表存放两者之间的关系。哪种比较好?

大佬有話說 (18)

  • 資深大佬 : ChoateYao

    你一篇文章会有多个作者吗?以后会有这个功能嘛?

    没有你用中间表做什么?

  • 資深大佬 : mijimoji

    你要搞明白,一对一,一对多,多对多的关系
    你这个大部分是一对一的关系(一篇文章对应一个作者)
    一对多,多对多才要用中间表

  • 資深大佬 : RHxW

    用 ORM 的话中间表是自动生成的

  • 資深大佬 : shawnbluce

    简单来说,你在文章表里加一个作者字段就好了,不要在作者表里加一个“我写的文章们”的字段

  • 資深大佬 : Hayek

    一个文章如果有多个作者才需要这样设计。
    但是如果只是博客或者一般企业信息网站,总共也没有几万篇文章,文章表的作者字段就是逗号分隔的 id 都可以,反正数据量小。

  • 主 資深大佬 : glp664186796

    @mijimoji 但是一个作者可以发表多篇文章,所以是一对多吧?

  • 主 資深大佬 : glp664186796

    @ChoateYao 我就是没有明白中间表的价值是什么

  • 主 資深大佬 : glp664186796

    @RHxW 那我就只需要做一个作者表和一个文章表,在文章表里加个外键,是吧?

  • 主 資深大佬 : glp664186796

    @shawnbluce 我不会在作者表里加“我的文章们”这样的东西。不过一个作者表一个文章表,和一个文章表里加个作者字段,这两种有什么区别吗?

  • 主 資深大佬 : glp664186796

    @Hayek 嗯,数据量确实不大。我就是想知道正确的做法是什么。

  • 資深大佬 : ElCorazon

    没有正确的做法,是根据需求来的

  • 資深大佬 : RHxW

    @glp664186796
    对的,这个外键就是作者和文章一对多,不需要中间表
    多对多的时候需要中间表
    你试一下就知道了,文章里加一个 ManyToManyField,然后看数据库,django 会自动把中间表建好,里面保存的是作者和文章的多对多关系

  • 資深大佬 : bnm965321

    一篇文章是有可能有多个作者的,不过大部分情况是一个作者

  • 資深大佬 : HashV2

    建议先学习一下数据库的知识,还有就是 django orm 不需要你关心这么多,你只要把业务逻辑理顺了指定一对多还是多对多就好,orm 会帮你建立关系表的。

  • 資深大佬 : jmc891205

    你用 django 的时候不用考虑这么多吧
    你在 model 里定义了多对多的关系,django 就自动帮你建个中间表了

  • 主 資深大佬 : glp664186796

    @jmc891205 就是说只要建文章表和作者表,设个外键,其他的不用管是吧

  • 主 資深大佬 : glp664186796

    @HashV2 好的,谢谢

  • 資深大佬 : fxxkgw

    多对多可以用中间表

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具