Pad*_*ddy 5 mysql database-design
场景: 为各种用户设计聊天室,以便一次聊天.所有的聊天都需要保存.每当用户登录时,他应该能够看到之前的所有聊天记录.
以下是可用于存储聊天的表的一个示例:
CREATE TABLE chat
(
chat_id int NOT NULL auto_increment,
posted_on datetime NOT NULL,
userid int NOT NULL,
message text NOT NULL,
PRIMARY KEY (chat_id),
FOREIGN KEY(userid) references users(userid) on update cascade on delete cascade
);
Run Code Online (Sandbox Code Playgroud)
为了以正确的顺序检索聊天,我需要在表中存储聊天的一些主键.所以,如果我使用上面的表来存储聊天,那么我就不能存储超过2147483647个聊天记录.显然,我可以使用一些像unsigned bigint这样具有巨大范围的数据类型,但它仍然会有一些限制.
但是,由于情景说要保存的聊天内容可以是无限的,那么我应该制作什么样的表格呢?我应该制作一些其他主键吗?
请帮我整理解决方案.我想知道谷歌或Facebook如何设法保存每个聊天.