非程序员想做个网站可太难了, Django 好友关系模型求助 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
glp664186796
V2EX    问与答

非程序员想做个网站可太难了, Django 好友关系模型求助

  •  1
     
  •   glp664186796 2020-06-09 09:28:51 +08:00 2950 次点击
    这是一个创建于 1954 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想给公司做个网站,由于会一点 python,又听说 Django 很容易,就选了 Django 。现在在好友关系模型这里被卡住了,怎么也想不通。

    用户在注册的时候需要选择自己的身份:卖家,买家,中介。

    卖家和中介之间是多对多关系,买家和中介之间是一对多关系。

    卖家可以添加另一个卖家为好友并分组为同事,也可以添加中介为好友并分组为伙伴,同事可以增删改查自己的发布的信息,伙伴只能查看。

    中介可以添加另一个中介为好友并分组为同事,也可以添加卖家为好友并分组为伙伴,同事可以增删改查自己发布的信息,伙伴可以查看和评论。

    中介可以添加买家为好友并分组为买家,买家可以查看自己发布的信息。每个买家对应一个中介,每个中介可以对应多个买家。

    目前根据我查到的东西,注册时的三种身份可以用 group 区分,对不同的身份显示不同的页面。但是好友关系这里是一团乱麻,理不清楚,不知道该怎么做,官方文档也没找到有用的东西。求大神给指条路,或者有什么资料可以参考的。

    另外我还想在用户注册时生成一个由字母和数字生成的唯一 id,十位数或者六位数,添加好友时可以通过这个 id 添加。这个要怎么生成?

    多谢各位。

    27 条回复    2020-06-09 16:52:26 +08:00
    nicevar
        1
    nicevar  
       2020-06-09 09:55:01 +08:00
    你这需求类似的不少, 先找现成的开源项目看看代码, 然后依葫芦画瓢
    glp664186796
        2
    glp664186796  
    OP
       2020-06-09 10:00:18 +08:00
    @nicevar 好的,多谢,GitHub 搜关键词就可以吧?
    darer
        3
    darer  
       2020-06-09 10:12:56 +08:00
    本质是数据库问题吧
    bfqymmt
        4
    bfqymmt  
       2020-06-09 10:15:13 +08:00
    卖家与卖家、中介与中介,这两者不应该是竞争对手的关系吗?
    ljpCN
        5
    ljpCN  
       2020-06-09 10:22:15 +08:00 via Android
    好友关系用数据库怎么存?
    t/669118
    CoolkHz
        6
    CoolkHz  
       2020-06-09 10:29:33 +08:00
    可以用模型建库 也可以建完数据库生成模型
    好友关系加个关联表就可以把 两张表就搞定了
    workspace
        7
    workspace  
       2020-06-09 10:32:41 +08:00
    看你的描述我觉得你可能还没有入门 django 建议从 b 站先找一个教程过一遍
    glp664186796
        8
    glp664186796  
    OP
       2020-06-09 10:34:53 +08:00
    @darer 对,就是数据库设计的问题。
    glp664186796
        9
    glp664186796  
    OP
       2020-06-09 10:36:16 +08:00
    @bfqymmt 这里不体现竞争关系。这个好像微信群一样,三五个同事和几个客户在一个群里,同事的身份是卖家,但是是同事关系。
    glp664186796
        10
    glp664186796  
    OP
       2020-06-09 10:37:31 +08:00
    @ljpCN 多谢,我仔细看看。
    Tezos
        11
    Tezos  
       2020-06-09 10:37:45 +08:00
    wp 不香吗 什么都有现成的 又不需要写代码
    glp664186796
        12
    glp664186796  
    OP
       2020-06-09 10:38:26 +08:00
    @CoolkHz 这些对于小白来说太笼统了,能否更详细一些?
    glp664186796
        13
    glp664186796  
    OP
       2020-06-09 10:39:33 +08:00
    @workspace 就是想快点做出来,所以是边学边做,遇到什么问题就去查,只是好友关系这里没查到相关的资料。
    glp664186796
        14
    glp664186796  
    OP
       2020-06-09 10:40:30 +08:00
    @Tezos wp 用过,但是已有模板不能满足要求,定制的话要重新学 PHP,感觉更费时间。
    tomatoj
        15
    tomatoj  
       2020-06-09 11:36:36 +08:00
    如果功能和性能的要求不高的话,可以尝试下低代码,比如说 IH5 的衍生品 IVX,
    im67
        16
    im67  
       2020-06-09 11:46:26 +08:00
    建两个表:身份表 \用户表,两者之间多对多不就可以了吗?
    glp664186796
        17
    glp664186796  
    OP
       2020-06-09 13:34:28 +08:00
    @tomatoj 只用 Django 里的 model 可以吗?再加个东西我感觉我又不会把它们整合到一起了。
    glp664186796
        18
    glp664186796  
    OP
       2020-06-09 14:55:43 +08:00
    @im67 用 Django 的 model 可以实现这个吗?
    Yourshell
        19
    Yourshell  
       2020-06-09 14:56:45 +08:00
    朋友关系可以用 many to many
    freelancher
        20
    freelancher  
       2020-06-09 15:17:43 +08:00
    哪里有这么好入门啊。我写个脚本都感觉费劲。PYTHON 的好处就是语法简洁。真要学起来。也是一样费时间。给自己几个月的时间系统学一遍吧。
    glp664186796
        21
    glp664186796  
    OP
       2020-06-09 15:45:37 +08:00
    @Yourshell 简单的 manytomany 我懂,但是我这个还有点别的东西,比如好友分组,我就不会了。
    glp664186796
        22
    glp664186796  
    OP
       2020-06-09 15:46:37 +08:00
    kidlj
        23
    kidlj  
       2020-06-09 16:22:43 +08:00
    一张 users 表,主键为自增 id,还有一个字段叫 role 标记身份(中介、买家、卖家)。
    一张 friends 表,user_id, friend_id 两个字段联合主键(P),user_id 和 friend_id 分别是引用 users("id") 的外键。

    至于一个买家只可对应一个中介,联这两张表查询:

    c = buyerA.QueryFriends(where(friend.role == '中介')).Count()
    如果 c > 0, 那么这个买家有对应的中介了,不可再添加中介为好友了。

    至于好友还要分组,再加一个 groups 表,one-to-many,一个组对应多个 user 。
    kidlj
        24
    kidlj  
       2020-06-09 16:24:04 +08:00
    NOTE:上面是伪代码,不是 django orm 代码。
    im67
        25
    im67  
       2020-06-09 16:39:22 +08:00
    @glp664186796 #18 用户表可以拓展 Django 自带的,身份表可以自建啊.

    感觉你对表的作用搞混了,试着找个简单的项目梳理一下?不是什么都要通过设计表开解决吧?好多不都是通过限制查询啊来解决的吗?比如 23 楼
    glp664186796
        26
    glp664186796  
    OP
       2020-06-09 16:51:10 +08:00
    @kidlj 多谢,这样的东西比较能理解
    glp664186796
        27
    glp664186796  
    OP
       2020-06-09 16:52:26 +08:00
    @im67 用户表是打算用自带的,三种身份是自建一个表,还是用自带的 group,哪种更合适?
    关于     帮助文档     自助推广系统     博客       FAQ     Solana     883 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:18 PVG 05:18 LAX 14:18 JFK 17:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86