【发布时间】:2019-03-01 17:23:21
【问题描述】:
我正在创建一个小型消息传递应用程序,用户可以在其中发送消息到:
- 普通聊天 - (任何人和所有人)
- 私人聊天 -(2 位用户之间)
- 群聊 -(3 个以上用户)
我还是数据库设计的新手,想了解如何设计我的数据库。
什么是好的设计/架构可以让我拥有这些功能?
现在我有一个看起来像这样的架构:
CREATE TABLE ChatRooms (
id serial PRIMARY KEY,
);
CREATE TABLE ChatMessages (
id serial PRIMARY KEY,
roomID FOREIGN KEY NOT NULL,
message VARCHAR(100),
senderID FOREIGN KEY NOT NULL,
time TIMESTAMP
);
当然还有一个带有用户 ID 的用户表。我需要更多的桌子吗?
【问题讨论】:
-
你在问什么广泛和避免使用像
id这样的列名更好roomID。而且你需要知道这3个聊天中有什么要求general,group,private -
抱歉,我无法理解您所写的内容,请您改写一下吗?
-
你有表
ChatMessages和ChatRooms的主键id不好命名,最好用id作为最后一个字母来表示表名,我说广泛,因为你有 3 个聊天或表general,group,private你需要知道你需要的要求。 -
我认为你根本不明白我的问题......
标签: sql postgresql database-design chat