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`) );