CREATE TABLE "person" ( "id" int, "email" varchar(255), "phone_number" varchar(255), "" varchar(255), "" datetime ); CREATE TABLE "conversation" ( "id" int, "person_id" int, "" datetime, "status" varchar(255), "fingerprint" varchar(255), FOREIGN KEY("person_id") REFERENCES "person" ("id") ); CREATE TABLE "message" ( "id" int, "conversation_id" int, "body" varchar(255), "person_id" int, "status" varchar(255), FOREIGN KEY("conversation_id") REFERENCES "conversation" ("id"), FOREIGN KEY("person_id") REFERENCES "person" ("id") ); CREATE TABLE "recipient" ( "person_id" int, "conversation_id" int, "status" varchar(255), "contact_id" int, "id" int, FOREIGN KEY("person_id") REFERENCES "person" ("id"), FOREIGN KEY("conversation_id") REFERENCES "conversation" ("id"), FOREIGN KEY("contact_id") REFERENCES "contact" ("id") ); CREATE TABLE "contact" ( "id" int, "owner_id" int, "phone_number" varchar(255), "target_user_id (opt)" int, FOREIGN KEY("owner_id") REFERENCES "person" ("id"), FOREIGN KEY("target_user_id (opt)") REFERENCES "person" ("id") );