我正在尝试使用对话功能进行聊天作为我的学习项目。任何用户都应该能够将消息写入其他用户并从该用户那里接收答案,而其他人不应该访问该对话。 在MySQL中,我创建了带有ID,登录名,密码和特权的表,表message
带有ID,作者(FK到用户ID),消息文本,发布时间和对话ID(FK),以及表dialogue
带有ID,FK给一个用户,FK给另一个用户和带有一些参数的附加列。我想让我的聊天方式让我只用一个查询就可以让所有来自两个给定用户的消息相互通信,但在上面的实现中,我必须先检查两列,先查找一个用户,然后检查所有具有该用户的条目用户找到他的对话者。只有这个查询才会返回一个可用于获取所有消息的对话PK。我认为这种认识是完全错误的,但我找不到解决问题的方法。我试图将对话ID附加到表user
,但这使我的基础变得更加复杂。 我该怎么办?来自同一表格的两个FK具有相同的含义
0
A
回答
0
这是我的第一个模式:http://puu.sh/qdLMw/f9acde605c.png但我做了另一个表,它将包含对话者和对话ID。当某个用户向另一个用户发送消息时,从当前用户设置为发送者并将他的对话者设置为目标的该表中的查询请求行,并从该行获得对话ID。如果没有这样的线路,系统将运行另一个查询,在其位置切换发送者和目标。如果结果再次为空,将在对话表中将两个用户相互链接的两条线创建新对话。 http://puu.sh/qdORJ/2122558f64.png 对我来说这看起来稍微好一些,如果有人有更好的答案,请告诉我。
相关问题
- 1. 来自同一表的JPA多个FK
- 2. 来自两个具有相同ID字段的表的查询
- 3. 来自两个具有相同列名的表的数据
- 4. 来自两个具有相同列名的表的一个视图
- 5. 定义两次具有相同名称的同一个Spring bean
- 6. 梯级上有两个FK删除表相同的表
- 7. 是两个代码具有相同的含义?
- 8. 在同一张表上使用相同的FK两次
- 9. 推动具有两个FK列的ORM到相同的外部表
- 10. SQL - 来自具有两个相同字段变体的多个表的信息。
- 11. 如何命名具有相同含义但不同类型的两个变量
- 12. 两个相连的表中有相同的记录具有相同的外键
- 13. 来自不同服务器的具有相同信息的两个CSR文件
- 14. mysql表有两个来自另一个同一表的外键
- 15. 具有相同列的两个表或具有附加列的一个表?
- 16. mysql合并来自具有相同描述的不同表格的更改
- 17. SQL将两个具有相同标题的表联合起来
- 18. 如何包含两个不同的包含两个具有相同名称的不同类的头?
- 19. 将具有相同主键的两个表规格化为3NF
- 20. FETCH_ASSOC和SELECT * FROM具有相同列名的两个表格
- 21. 结合两个具有相同结构的表格
- 22. 具有相同序列的两个表格
- 23. 具有相同组合键的两个表格
- 24. 具有相似列但主键不同的两个表格
- 25. 与两个不同的表具有相同的结构
- 26. 具有相同的ID MVC两个不同的表
- 27. 如何区分具有相同自定义单元格的两个UITableView
- 28. 具有两个相同名称列的两个表的输出
- 29. 合并两个表为一个具有相同的列名
- 30. 如何从两个不同的表格显示具有相同名称的列?
显示您的模式,因为上面的帮助很小 – Drew
将其作为文本发布并附带问题的编辑。我们大多数人不会随意跳到随机服务器上,点击:p – Drew
但puush不是随机的服务器。 http://puush.me/ –