From 5ea270f9ec27f75ebf3073996265d705bfb89a17 Mon Sep 17 00:00:00 2001
From: Farhan Khan <farhan@farhan.codes>
Date: Tue, 5 Jan 2021 05:54:27 +0000
Subject: [PATCH] added table relationship

---
 tables.sql | 78 ++++++++++++++++++++++++++----------------------------
 1 file changed, 37 insertions(+), 41 deletions(-)

diff --git a/tables.sql b/tables.sql
index c41cbff..08dcb99 100644
--- a/tables.sql
+++ b/tables.sql
@@ -1,47 +1,43 @@
-DROP TABLE instances;
-DROP TABLE accounts;
-DROP TABLE posts;
+DROP TABLE IF EXISTS instances;
+DROP TABLE IF EXISTS posts;
+DROP TABLE IF EXISTS accounts;
 
 CREATE TABLE accounts (
-    key serial NOT NULL,
-    actor_type character varying(1000) NOT NULL,
-    id character varying(2083) NOT NULL PRIMARY KEY,
-    inbox character varying(2083) NOT NULL,
-    outbox character varying(2083) NOT NULL,
-    followers character varying(2083) NOT NULL,
-    following character varying(2083) NOT NULL,
-    url character varying(2083) NOT NULL,
-    preferredusername character varying(1000) NOT NULL,
-    name character varying(1000) NOT NULL,
-    summary text,
-    icon character varying(2083),
-    image character varying(2083),
-    publickey text,
-    identifiedat timestamp with time zone DEFAULT now(),
-    instance character varying(1000) NOT NULL
+    actor_type VARCHAR(1000) NOT NULL,
+    id VARCHAR(2083) NOT NULL PRIMARY KEY,
+    inbox VARCHAR(2083) NOT NULL,
+    outbox VARCHAR(2083) NOT NULL,
+    followers VARCHAR(2083) NOT NULL,
+    following VARCHAR(2083) NOT NULL,
+    url VARCHAR(2083) NOT NULL,
+    preferredusername VARCHAR(1000) NOT NULL,
+    name VARCHAR(1000) NOT NULL,
+    summary TEXT,
+    icon VARCHAR(2083),
+    image VARCHAR(2083),
+    publickey TEXT,
+    identifiedat TIMESTAMP with time zone DEFAULT now(),
+    instance VARCHAR(1000) NOT NULL
+);
+
+CREATE TABLE posts (
+    id VARCHAR(2083) NOT NULL,
+    inreplyto VARCHAR(2083),
+    published TIMESTAMP with time zone NOT NULL,
+    summary TEXT,
+    content TEXT,
+    normalized TEXT,
+    attributedto VARCHAR(2083) REFERENCES accounts,
+    posthash bytea,
+    received_at TIMESTAMP with time zone DEFAULT now(),
+    instance VARCHAR(1000) NOT NULL
 );
 
 CREATE TABLE instances (
-    id integer NOT NULL,
-    endpoint character varying(2083) NOT NULL,
-    autostart boolean,
-    state character varying(16),
-    username character varying(32),
-    password character varying(32),
-    software character varying(50)
-);
-
-
-CREATE TABLE posts (
-    key serial NOT NULL,
-    id character varying(2083) NOT NULL PRIMARY KEY,
-    inreplyto character varying(2083),
-    published timestamp with time zone NOT NULL,
-    summary text,
-    content text,
-    normalized text,
-    attributedto character varying(1000) NOT NULL,
-    posthash bytea,
-    received_at timestamp with time zone DEFAULT now(),
-    instance character varying(1000) NOT NULL
+    endpoint VARCHAR(2083) NOT NULL,
+    autostart BOOLEAN,
+    state VARCHAR(16),
+    username VARCHAR(32),
+    password VARCHAR(32),
+    software VARCHAR(50)
 );