38 lines
900 B
Markdown
38 lines
900 B
Markdown
# Postgres as a messaging app
|
|
|
|
Here is a funny idea I came up with : using postgres to make an instant
|
|
messaging app.
|
|
|
|
## The tables
|
|
|
|
First create a basic user table:
|
|
|
|
CREATE TABLE users (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
username VARCHAR
|
|
);
|
|
|
|
Then create a conversation table:
|
|
|
|
CREATE TABLE conversation (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
name VARCHAR
|
|
);
|
|
|
|
And a participant table:
|
|
|
|
CREATE TABLE participant (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
user_id UUID REFERENCES users(id),
|
|
conversation_id UUID REFERENCES conversation(id)
|
|
);
|
|
|
|
Then a message table :
|
|
|
|
CREATE TABLE message (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
sender_id UUID REFERENCES participant(id),
|
|
conversation_id UUID REFERENCES conversation(id),
|
|
content VARCHAR
|
|
);
|