CREATE TABLE `user` ( `id` int, `created_date` datetime, `email` varchar(255), `full_name` varchar(255), `display_name` varchar(255), `password` varchar(255), `role` int, `status` bool, `access_token` varchar(255), `access_token_expire_date` datetime ); CREATE TABLE `specialist` ( `user_id` int PRIMARY KEY, `profession` varchar(255), `working_city` varchar(255), FOREIGN KEY(`user_id`) REFERENCES `user` (`id`) ); CREATE TABLE `patient` ( `user_id` int PRIMARY KEY, `age` int, `gender` int, FOREIGN KEY(`user_id`) REFERENCES `user` (`id`) ); CREATE TABLE `category` ( `id` int, `name` varchar(255), `url_name` varchar(255), FOREIGN KEY(`url_name`) REFERENCES `url` (`name`) ); CREATE TABLE `tag` ( `id` int, `name` varchar(255), `url_name` varchar(255), FOREIGN KEY(`url_name`) REFERENCES `url` (`name`) ); CREATE TABLE `question` ( `id` int, `user_id` int, `created_date` datetime, `title` varchar(255), `statu` bool, `hit` int, FOREIGN KEY(`user_id`) REFERENCES `user` (`id`) ); CREATE TABLE `message` ( `id` int, `question_id` int, `created_date` datetime, `user_id` int, `content` varchar(255), `statu` bool, `message_type` int, FOREIGN KEY(`question_id`) REFERENCES `question` (`id`) ); CREATE TABLE `tag_question` ( `id` int, `tag_id` int, `question_id` int, FOREIGN KEY(`tag_id`) REFERENCES `tag` (`id`), FOREIGN KEY(`question_id`) REFERENCES `question` (`id`) ); CREATE TABLE `category_tag` ( `id` int, `category_id` int, `tag_id` int, FOREIGN KEY(`category_id`) REFERENCES `category` (`id`), FOREIGN KEY(`tag_id`) REFERENCES `tag` (`id`) ); CREATE TABLE `message_like` ( `id` int, `created_date` datetime, `message_id` int, `user_id` int, FOREIGN KEY(`message_id`) REFERENCES `message` (`id`), FOREIGN KEY(`user_id`) REFERENCES `user` (`id`) );