Sql server 聊天系统模式设计建议

Sql server 聊天系统模式设计建议,sql-server,schema,chat,Sql Server,Schema,Chat,我需要一个关于sql表模式的建议。我打开了一个表并将其命名为Chats,添加两个列(如ID和Messages)还是添加一个包含ID和Messages的列更好?其中哪一个工作得更快?就我个人而言,我将其建模为两个表: Chats - ID - Name Messages - ID - ChatID - Message - SentDate Messages.ChatID到Chats.ID之间应该有一个外键 否则,每次有人发送消息时,您都必须创建重复的聊天记录 我强烈建议不要将ID和

我需要一个关于sql表模式的建议。我打开了一个表并将其命名为Chats,添加两个列(如ID和Messages)还是添加一个包含ID和Messages的列更好?其中哪一个工作得更快?就我个人而言,我将其建模为两个表:

Chats
 - ID
 - Name

Messages
 - ID
 - ChatID
 - Message
 - SentDate
Messages.ChatID到Chats.ID之间应该有一个外键

否则,每次有人发送消息时,您都必须创建重复的聊天记录


我强烈建议不要将ID和值保留在同一列中,这会使加入几乎不可能,并会在以后产生各种问题。

我个人将此建模为两个表:

Chats
 - ID
 - Name

Messages
 - ID
 - ChatID
 - Message
 - SentDate
Messages.ChatID到Chats.ID之间应该有一个外键

否则,每次有人发送消息时,您都必须创建重复的聊天记录


我强烈建议不要将ID和值保留在同一列中,这样几乎不可能加入,并且以后会产生各种问题。

没有理由使用单个列。添加尽可能多的列,每个列都有自己的数据类型,因为以后可以按每列对表进行筛选和排序。您还可以添加约束、索引、统计信息等。。。如果需要的话


如果使用单独的列,则对该表执行的任何查询都将运行得更快。

没有理由使用单个列。添加尽可能多的列,每个列都有自己的数据类型,因为以后可以按每列对表进行筛选和排序。您还可以添加约束、索引、统计信息等。。。如果需要的话


如果使用单独的列,则在该表上执行的任何查询都会运行得更快。

Never、Never、Never在一列中存储多个值<代码>id应仅包含一个数字。和
message
应该只包含一条消息。我已经这样做了,但是它们都工作得很慢,即使有三行或四行。您使用的是什么数据库?MSSql?MySQL?Oracle?数据库表需要标准格式,因此您需要使用第一种变体。@Ravshanjon您说的慢是什么意思?它的数据量基本上是相同的,不能有太多的变化,永远不会,永远不会在一列中存储多个值<代码>id应仅包含一个数字。和
message
应该只包含一条消息。我已经这样做了,但是它们都工作得很慢,即使有三行或四行。您使用的是什么数据库?MSSql?MySQL?Oracle?数据库表需要标准格式,因此您需要使用第一种变体。@Ravshanjon您说的慢是什么意思?数据量基本相同,变化不大