gpt4 book ai didi

mysql - 数据库设计布局

转载 作者:行者123 更新时间:2023-11-29 17:31:10 26 4
gpt4 key购买 nike

我正在用java创建一个数据库聊天程序来练习MySQL。

到目前为止我已经创建了 3 个表:

  1. 聊天日志,用于记录当前聊天 session 的名称和密码
  2. 记录用户名、密码和当前聊天的用户日志
  3. 错误日志,用于自动报告错误和内容问题

但我想知道存储聊天消息的最佳和最有效的方式是什么。我应该为每个聊天创建一个新表(使用聊天日志表中的名称来标识它)还是拥有一个大表来存储所有聊天的所有消息并将聊天名称引用为外键。

最佳答案

到目前为止,我们只考虑表 ChatLogUserLog

聊天记录

chatid | chatname | chatpassword
-------+----------+-------------
1 | foo | bar
2 | lol | xD

用户日志

userid | username   | userpassword
-------+------------+-------------
1 | chatbot | skynet
2 | john | doe
3 | chucknixon | thegreatone

对于消息日志,我的方法将是您编写的最后一种方法,使用一张带有外键的大表。

消息日志

messageid | userid | chatid | messagecontent
----------+--------+--------+---------------
1 | 1 | 1 | john has joined the chat
2 | 1 | 1 | chucknixon has joined the chat
3 | 2 | 1 | hello chuck
4 | 1 | 2 | john has joined the chat
5 | 3 | 1 | Hi john how are you ?

关系逻辑和结构将如下所示:

-唯一的用户可以写入0或n消息

-一条独特的消息可由1且仅 1用户写入

-一个独特的聊天室可以包含0或n消息

-唯一的消息可以包含在1且仅1聊天室

[UserLog] 0,n -> (to write) <- 1,1 [MessageLog] 1,1 -> (to contain) <- 0,n [ChatLog]

关于mysql - 数据库设计布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50643044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com