013231
V2EX  ›  Django

11 年前的一個 ticket,到現在還沒解決。。。

  •  
  •   013231 · Jan 13, 2017 · 6447 views
    This topic created in 3580 days ago, the information mentioned may be changed or developed.
    https://code.djangoproject.com/ticket/897

    Bi-Directional ManyToMany in Admin
    14 replies  •  2018-07-21 06:16:33 +08:00
    julyclyde
    julyclyde
    Jan 14, 2017
    1
    不是为 django 开脱
    数据库里如果出现 many to many 基本上就是设计错误
    013231
    013231
    OP
    Jan 14, 2017
    2
    @julyclyde 为什么?
    shoaly
    shoaly
    Jan 14, 2017
    3
    文章 article_id , 标记 tag_id, 一篇文章可以多个 tag_id, 同一个 tag_id 也可以对应多个 article_id, m:m ?
    zonghua
    zonghua
    Jan 14, 2017 via iPhone
    4
    @013231 查询吃力
    latyas
    latyas
    Jan 14, 2017
    5
    manytomany 有啥错?
    django 也是通过中间表来做映射的,也就是多个 JOIN 罢了,除非有强性能要求不允许数据库中出现 JOIN 或者限制 JOIN 次数。

    而且这个和 M2M 没关系吧 这是问 django admin 的问题
    013231
    013231
    OP
    Jan 14, 2017
    6
    @zonghua 多表联合查询是可能有性能问题, 但不能说这是设计错误啊.
    013231
    013231
    OP
    Jan 14, 2017
    7
    @latyas 没错, 这就是 django.contrib.admin 的问题, 和数据库结构没关系.
    julyclyde
    julyclyde
    Jan 14, 2017
    8
    @013231 正确的做法是额外有个 m*n 表,而不是直接在表上做 many to many
    Kilerd
    Kilerd
    Jan 14, 2017 via iPhone
    9
    由此证明了 flask 的优越性 😋😋😋
    chaleaoch
    chaleaoch
    Jan 14, 2017
    10
    @julyclyde 区别是?
    kankana
    kankana
    Jan 15, 2017 via iPhone
    11
    是说需要 pivot 表吧
    qwer1234asdf
    qwer1234asdf
    Jan 15, 2017 via iPhone
    12
    可以参考下 cakephp 模型的设计, 1.2 版的,新版本的不知道,没用过……
    其实,这不应该是框架的问题, flask 也会出现 many to many 的情形,可以弄一个中间表
    msg7086
    msg7086
    Jan 16, 2017
    13
    @julyclyde 你这话挺有问题的。
    Many to many 的标准做法就是加一张关联表。
    「数据库里如果出现 many to many 基本上就是设计错误」是什么鬼。
    dcoder
    dcoder
    Jul 21, 2018
    14
    @julyclyde

    「数据库里如果出现 many to many 基本上就是设计错误」是什么鬼。+1

    "正确的做法是额外有个 m*n 表,而不是直接在表上做 many to many" 这又是什么意思?
    Django 的 many to many 本身就会建立一个额外的表来存关系的呀?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3099 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 10:46 · PVG 18:46 · LAX 02:46 · JFK 05:46
    ♥ Do have faith in what you're doing.