全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1391|回复: 12

全球技术论坛,求数据库设计思路

[复制链接]
发表于 2019-10-14 15:55:24 | 显示全部楼层 |阅读模式
小弟不才,无法完美解决两人关系问题

假设有张聊天室的表,里面有两个字段   UseridA和UseridB

现在有两个人,ID为111和222

当111对222发起聊天的时候建立聊天室表, UseridA=111, UseridB=222

当222对111发起聊天的时候建立聊天室表, UseridA=222, UseridB=111

当我需要去对他们的聊天室做更改的时候,查找聊天室的语句就是    (UseridA=111&&UseridB=222)|| (UseridA=222&UseridB=111)


本人觉得此方法极其愚蠢,现在想到的解决方案有两种,一种就是固定把UseridA填入小的id,另外一种就是多加一个字段为,111,222,这种形式让后进行包含的查询,但是始终感觉无法完美,求大佬解惑

发表于 2019-10-14 16:04:54 | 显示全部楼层
为什么要两张表,一张表不就可以解决了么,一个sender,一个receiver
发表于 2019-10-14 16:13:08 来自手机 | 显示全部楼层
用一个表表示两个人聊天不就行了
发表于 2019-10-14 16:18:29 | 显示全部楼层
。。 userA userB ??
你的聊天室只支持2个人??  
发表于 2019-10-14 16:36:36 | 显示全部楼层
339 发表于 2019-10-14 16:04
为什么要两张表,一张表不就可以解决了么,一个sender,一个receiver

我没见作者是两张表啊?
发表于 2019-10-14 16:41:52 | 显示全部楼层
本帖最后由 后悔当初不努力 于 2019-10-14 16:43 编辑

我没做过聊天室,也不是大佬   
不过我的思路是这样
看别人的聊天室 都是有房间号,我觉得一个聊天室一个id吧(有个自增id就行了 不需要用户A+用户B这么查)
然后查询就查这个id   
来一个字段存发起的Userid  ,再一个字段就用 , 存接收人的Userid   查这个用find_in_set() 查

不过如果聊天人多的话,用关联表  一张表存 聊天室id,发起人Userid 聊天室信息,另一张表 存聊天室id,聊天人们的Userid 一个聊天用户一个记录 如果有啥聊天室积分的这么搞不错
发表于 2019-10-14 16:44:17 | 显示全部楼层
没学过不会
发表于 2019-10-14 17:06:36 | 显示全部楼层
你第一种方法和第二种有啥区别?感觉就是字段名不一样?
发表于 2019-10-14 19:29:41 | 显示全部楼层
后悔当初不努力 发表于 2019-10-14 16:36
我没见作者是两张表啊?
当111对222发起聊天的时候建立聊天室表, UseridA=111, UseridB=222

当222对111发起聊天的时候建立聊天室表, UseridA=222, UseridB=111

这不是两张表吗?
 楼主| 发表于 2019-10-15 00:14:09 来自手机 | 显示全部楼层
只是打比方,主要想解决的问题是两人关系,比我我喜欢你或者你喜欢我,现在已知我和你的id,要找出我喜欢你或者你喜欢我的记录,怎么样的设计思路可以比较方便的查找
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-25 03:42 , Processed in 0.061552 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表