想给公司做个网站,由于会一点 python,又听说 Django 很容易,就选了 Django 。现在在好友关系模型这里被卡住了,怎么也想不通。
用户在注册的时候需要选择自己的身份:卖家,买家,中介。
卖家和中介之间是多对多关系,买家和中介之间是一对多关系。
卖家可以添加另一个卖家为好友并分组为同事,也可以添加中介为好友并分组为伙伴,同事可以增删改查自己的发布的信息,伙伴只能查看。
中介可以添加另一个中介为好友并分组为同事,也可以添加卖家为好友并分组为伙伴,同事可以增删改查自己发布的信息,伙伴可以查看和评论。
中介可以添加买家为好友并分组为买家,买家可以查看自己发布的信息。每个买家对应一个中介,每个中介可以对应多个买家。
目前根据我查到的东西,注册时的三种身份可以用 group 区分,对不同的身份显示不同的页面。但是好友关系这里是一团乱麻,理不清楚,不知道该怎么做,官方文档也没找到有用的东西。求大神给指条路,或者有什么资料可以参考的。
另外我还想在用户注册时生成一个由字母和数字生成的唯一 id,十位数或者六位数,添加好友时可以通过这个 id 添加。这个要怎么生成?
多谢各位。
1
nicevar 2020-06-09 09:55:01 +08:00
你这需求类似的不少, 先找现成的开源项目看看代码, 然后依葫芦画瓢
|
2
glp664186796 OP @nicevar 好的,多谢,GitHub 搜关键词就可以吧?
|
3
darer 2020-06-09 10:12:56 +08:00
本质是数据库问题吧
|
4
bfqymmt 2020-06-09 10:15:13 +08:00
卖家与卖家、中介与中介,这两者不应该是竞争对手的关系吗?
|
5
ljpCN 2020-06-09 10:22:15 +08:00 via Android
好友关系用数据库怎么存?
https://www.v2ex.com/t/669118 |
6
CoolkHz 2020-06-09 10:29:33 +08:00
可以用模型建库 也可以建完数据库生成模型
好友关系加个关联表就可以把 两张表就搞定了 |
7
workspace 2020-06-09 10:32:41 +08:00
看你的描述我觉得你可能还没有入门 django 建议从 b 站先找一个教程过一遍
|
8
glp664186796 OP @darer 对,就是数据库设计的问题。
|
9
glp664186796 OP @bfqymmt 这里不体现竞争关系。这个好像微信群一样,三五个同事和几个客户在一个群里,同事的身份是卖家,但是是同事关系。
|
10
glp664186796 OP @ljpCN 多谢,我仔细看看。
|
11
Tezos 2020-06-09 10:37:45 +08:00
wp 不香吗 什么都有现成的 又不需要写代码
|
12
glp664186796 OP @CoolkHz 这些对于小白来说太笼统了,能否更详细一些?
|
13
glp664186796 OP @workspace 就是想快点做出来,所以是边学边做,遇到什么问题就去查,只是好友关系这里没查到相关的资料。
|
14
glp664186796 OP @Tezos wp 用过,但是已有模板不能满足要求,定制的话要重新学 PHP,感觉更费时间。
|
15
tomatoj 2020-06-09 11:36:36 +08:00
如果功能和性能的要求不高的话,可以尝试下低代码,比如说 IH5 的衍生品 IVX,
|
16
im67 2020-06-09 11:46:26 +08:00
建两个表:身份表 \用户表,两者之间多对多不就可以了吗?
|
17
glp664186796 OP @tomatoj 只用 Django 里的 model 可以吗?再加个东西我感觉我又不会把它们整合到一起了。
|
18
glp664186796 OP @im67 用 Django 的 model 可以实现这个吗?
|
19
Yourshell 2020-06-09 14:56:45 +08:00
朋友关系可以用 many to many
|
20
freelancher 2020-06-09 15:17:43 +08:00
哪里有这么好入门啊。我写个脚本都感觉费劲。PYTHON 的好处就是语法简洁。真要学起来。也是一样费时间。给自己几个月的时间系统学一遍吧。
|
21
glp664186796 OP @Yourshell 简单的 manytomany 我懂,但是我这个还有点别的东西,比如好友分组,我就不会了。
|
22
glp664186796 OP @freelancher o(╥﹏╥)o
|
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 。 |
24
kidlj 2020-06-09 16:24:04 +08:00
NOTE:上面是伪代码,不是 django orm 代码。
|
25
im67 2020-06-09 16:39:22 +08:00
@glp664186796 #18 用户表可以拓展 Django 自带的,身份表可以自建啊.
感觉你对表的作用搞混了,试着找个简单的项目梳理一下?不是什么都要通过设计表开解决吧?好多不都是通过限制查询啊来解决的吗?比如 23 楼 |
26
glp664186796 OP @kidlj 多谢,这样的东西比较能理解
|
27
glp664186796 OP @im67 用户表是打算用自带的,三种身份是自建一个表,还是用自带的 group,哪种更合适?
|