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

2020-06-09 09:28:51 +08:00
 glp664186796

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

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

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

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

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

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

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

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

多谢各位。

2607 次点击
所在节点    问与答
27 条回复
glp664186796
2020-06-09 15:45:37 +08:00
@Yourshell 简单的 manytomany 我懂,但是我这个还有点别的东西,比如好友分组,我就不会了。
glp664186796
2020-06-09 15:46:37 +08:00
@freelancher o(╥﹏╥)o
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
2020-06-09 16:24:04 +08:00
NOTE:上面是伪代码,不是 django orm 代码。
im67
2020-06-09 16:39:22 +08:00
@glp664186796 #18 用户表可以拓展 Django 自带的,身份表可以自建啊.

感觉你对表的作用搞混了,试着找个简单的项目梳理一下?不是什么都要通过设计表开解决吧?好多不都是通过限制查询啊来解决的吗?比如 23 楼
glp664186796
2020-06-09 16:51:10 +08:00
@kidlj 多谢,这样的东西比较能理解
glp664186796
2020-06-09 16:52:26 +08:00
@im67 用户表是打算用自带的,三种身份是自建一个表,还是用自带的 group,哪种更合适?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/679876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX