V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
glp664186796
V2EX  ›  问与答

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

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

    想给公司做个网站,由于会一点 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
    好友关系用数据库怎么存?
    https://www.v2ex.com/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
    @freelancher o(╥﹏╥)o
    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,哪种更合适?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2765 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:44 · PVG 19:44 · LAX 03:44 · JFK 06:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.