datasets/bat/setup/db_blog/mysql/setup.sql (811 lines of code) (raw):

CREATE TABLE `tbl_attachments`( `attachment_id` int NOT NULL, `post_id` int DEFAULT NULL, `user_id` int DEFAULT NULL, `file_name` varchar(255) DEFAULT NULL, `file_path` varchar(255) DEFAULT NULL, `file_size` int DEFAULT NULL, `file_type` varchar(50) DEFAULT NULL, `upload_date` datetime DEFAULT NULL, `description` text, `is_active` tinyint(1) DEFAULT NULL, `visibility_status` varchar(20) DEFAULT NULL, `download_count` int DEFAULT NULL, `file_extension` varchar(10) DEFAULT NULL, `uploaded_by_ip` varchar(15) DEFAULT NULL, `last_modified` datetime DEFAULT NULL, `expiration_date` datetime DEFAULT NULL, `tags_file` json DEFAULT NULL, `category_file` json DEFAULT NULL, `access_permissions` json DEFAULT NULL, `storage_location` varchar(255) DEFAULT NULL, `metadata` json DEFAULT NULL, `is_featured` tinyint(1) DEFAULT NULL, `parent_attachment_id` int DEFAULT NULL, PRIMARY KEY(`attachment_id`), KEY `fk_post_id`(`post_id`), KEY `fk_user_id`(`user_id`), KEY `fk_parent_attachment_id`(`parent_attachment_id`), CONSTRAINT `fk_parent_attachment_id` FOREIGN KEY(`parent_attachment_id`) REFERENCES `tbl_attachments`(`attachment_id`), CONSTRAINT `fk_post_id` FOREIGN KEY(`post_id`) REFERENCES `tbl_posts`(`post_id`), CONSTRAINT `fk_user_id` FOREIGN KEY(`user_id`) REFERENCES `tbl_users`(`user_id`)); CREATE TABLE `tbl_categories`( `category_id` int NOT NULL, `created_by` int DEFAULT NULL, `updated_by` int DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `description` text, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `parent_category` int DEFAULT NULL, `slug` varchar(255) DEFAULT NULL, `image` varchar(255) DEFAULT NULL, `count` int DEFAULT NULL, `visibility` tinyint(1) DEFAULT NULL, `is_edited` tinyint(1) DEFAULT NULL, PRIMARY KEY(`category_id`), KEY `created_by`(`created_by`), KEY `updated_by`(`updated_by`), CONSTRAINT `tbl_categories_ibfk_1` FOREIGN KEY(`created_by`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_categories_ibfk_2` FOREIGN KEY(`updated_by`) REFERENCES `tbl_users`(`user_id`)); CREATE TABLE `tbl_categories_hierarchy`( `category_hierarchy_id` int NOT NULL, `category_id` int DEFAULT NULL, `created_by` int DEFAULT NULL, `updated_by` int DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `description` text, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `status` varchar(50) DEFAULT NULL, `visibility` varchar(50) DEFAULT NULL, `orden_priority` int DEFAULT NULL, `icon` varchar(255) DEFAULT NULL, `color` varchar(50) DEFAULT NULL, `metadata` text, `parent_category_name` varchar(255) DEFAULT NULL, PRIMARY KEY(`category_hierarchy_id`), KEY `category_id`(`category_id`), KEY `created_by`(`created_by`), KEY `updated_by`(`updated_by`), CONSTRAINT `tbl_categories_hierarchy_ibfk_1` FOREIGN KEY(`category_id`) REFERENCES `tbl_categories`(`category_id`), CONSTRAINT `tbl_categories_hierarchy_ibfk_2` FOREIGN KEY(`created_by`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_categories_hierarchy_ibfk_3` FOREIGN KEY(`updated_by`) REFERENCES `tbl_users`(`user_id`)); CREATE TABLE `tbl_comments`( `comment_id` int NOT NULL, `content` text, `user_id` int DEFAULT NULL, `post_id` int DEFAULT NULL, `parent_comment_id` int DEFAULT NULL, `likes_count` int DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `is_approved` tinyint(1) DEFAULT NULL, `dislikes_count` int DEFAULT NULL, `report_count` int DEFAULT NULL, `is_deleted` tinyint(1) DEFAULT NULL, `user_ip` varchar(255) DEFAULT NULL, `user_agent` varchar(255) DEFAULT NULL, `is_flagged` tinyint(1) DEFAULT NULL, `reply_count` int DEFAULT NULL, `mentions` json DEFAULT NULL, `attachments` json DEFAULT NULL, `metadata` json DEFAULT NULL, `is_edited` tinyint(1) DEFAULT NULL, PRIMARY KEY(`comment_id`), KEY `user_id`(`user_id`), KEY `post_id`(`post_id`), CONSTRAINT `tbl_comments_ibfk_1` FOREIGN KEY(`user_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_comments_ibfk_2` FOREIGN KEY(`post_id`) REFERENCES `tbl_posts`(`post_id`)); CREATE TABLE `tbl_country`( `country_name` varchar(255) NOT NULL, `country_id` int DEFAULT NULL, `continent` varchar(255) DEFAULT NULL, `region` varchar(255) DEFAULT NULL, `X` float DEFAULT NULL, `Y` float DEFAULT NULL, PRIMARY KEY(`country_name`), KEY `country_id`(`country_id`), CONSTRAINT `tbl_country_ibfk_1` FOREIGN KEY(`country_id`) REFERENCES `tbl_users`(`user_id`)); CREATE TABLE `tbl_followers`( `follower_id` int NOT NULL, `following_id` int DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `follower_data` json DEFAULT NULL, PRIMARY KEY(`follower_id`)); CREATE TABLE `tbl_labels`( `label_id` int NOT NULL, `creator_id` int DEFAULT NULL, `updated_by` int DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `description` text, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `post_count` int DEFAULT NULL, `visibility_status` varchar(50) DEFAULT NULL, `is_active` tinyint(1) DEFAULT NULL, `usage_frequency` int DEFAULT NULL, `parent_label_id` int DEFAULT NULL, PRIMARY KEY(`label_id`), KEY `creator_id`(`creator_id`), KEY `updated_by`(`updated_by`), KEY `parent_label_id`(`parent_label_id`), CONSTRAINT `tbl_labels_ibfk_1` FOREIGN KEY(`creator_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_labels_ibfk_2` FOREIGN KEY(`updated_by`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_labels_ibfk_3` FOREIGN KEY(`parent_label_id`) REFERENCES `tbl_labels`(`label_id`)); CREATE TABLE `tbl_media`( `media_id` int NOT NULL, `post_id` int DEFAULT NULL, `type` varchar(255) DEFAULT NULL, `url` varchar(255) DEFAULT NULL, `description` text, `upload_date` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `filename` varchar(255) DEFAULT NULL, `file_size` int DEFAULT NULL, `caption` text, `uploader_id` int DEFAULT NULL, `visibility` varchar(50) DEFAULT NULL, `access_rights` json DEFAULT NULL, `file_path` varchar(255) DEFAULT NULL, `metadata` json DEFAULT NULL, `hash` varchar(255) DEFAULT NULL, `is_encrypted` tinyint(1) DEFAULT NULL, `encryption_key` varchar(255) DEFAULT NULL, `encryption_algorithm` varchar(50) DEFAULT NULL, `status_id` int DEFAULT NULL, PRIMARY KEY(`media_id`)); CREATE TABLE `tbl_notifications`( `notification_id` int NOT NULL, `user_id` int DEFAULT NULL, `notification_type` varchar(255) DEFAULT NULL, `sender_id` int DEFAULT NULL, `post_id` int DEFAULT NULL, `comment_id` int DEFAULT NULL, `notification_message` text, `notification_date` datetime DEFAULT NULL, `is_read` tinyint(1) DEFAULT NULL, `is_archived` tinyint(1) DEFAULT NULL, `is_deleted` tinyint(1) DEFAULT NULL, `link_to_notification` varchar(255) DEFAULT NULL, `notification_priority` int DEFAULT NULL, `additional_data` json DEFAULT NULL, `notification_subject` varchar(255) DEFAULT NULL, `notification_status` varchar(50) DEFAULT NULL, `notification_action` varchar(50) DEFAULT NULL, `related_user_id` int DEFAULT NULL, `source_application` varchar(255) DEFAULT NULL, `notification_category` varchar(255) DEFAULT NULL, `expiration_date` datetime DEFAULT NULL, `delivery_method` varchar(50) DEFAULT NULL, `notification_channel` varchar(50) DEFAULT NULL, `notification_language` varchar(50) DEFAULT NULL, `recipient_group` varchar(255) DEFAULT NULL, `notification_tags` json DEFAULT NULL, `notification_expiry_time` datetime DEFAULT NULL, `notification_context` json DEFAULT NULL, `notification_origin` varchar(255) DEFAULT NULL, PRIMARY KEY(`notification_id`), KEY `user_id`(`user_id`), KEY `sender_id`(`sender_id`), KEY `post_id`(`post_id`), CONSTRAINT `tbl_notifications_ibfk_1` FOREIGN KEY(`user_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_notifications_ibfk_2` FOREIGN KEY(`sender_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_notifications_ibfk_3` FOREIGN KEY(`post_id`) REFERENCES `tbl_posts`(`post_id`)); CREATE TABLE `tbl_posts`( `post_id` int NOT NULL, `user_id` int DEFAULT NULL, `title` varchar(255) DEFAULT NULL, `content` text, `published_at` datetime DEFAULT NULL, `is_published` tinyint(1) DEFAULT NULL, `views_count` int DEFAULT NULL, `likes_count` int DEFAULT NULL, `shares_count` int DEFAULT NULL, `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, `slug` varchar(255) DEFAULT NULL, `excerpt` text, `status_id` int DEFAULT NULL, `category_id` int DEFAULT NULL, `dislikes_count` int DEFAULT NULL, `comments_count` int DEFAULT NULL, `is_featured` tinyint(1) DEFAULT NULL, `author_name` varchar(255) DEFAULT NULL, `image_url` varchar(255) DEFAULT NULL, `tags` json DEFAULT NULL, `reading_time` int DEFAULT NULL, `external_link` varchar(255) DEFAULT NULL, `metadata` json DEFAULT NULL, PRIMARY KEY(`post_id`), KEY `user_id`(`user_id`), CONSTRAINT `tbl_posts_ibfk_1` FOREIGN KEY(`user_id`) REFERENCES `tbl_users`(`user_id`)); CREATE TABLE `tbl_posts_tags`( `post_id` int NOT NULL, `tag_id` int NOT NULL, `comments` json DEFAULT NULL, `label_status` varchar(50) DEFAULT NULL, `label_at` timestamp NULL DEFAULT NULL, PRIMARY KEY(`post_id`, `tag_id`), KEY `tag_id`(`tag_id`), CONSTRAINT `tbl_posts_tags_ibfk_1` FOREIGN KEY(`tag_id`) REFERENCES `tbl_tags`(`tag_id`), CONSTRAINT `tbl_posts_tags_ibfk_2` FOREIGN KEY(`post_id`) REFERENCES `tbl_posts`(`post_id`)); CREATE TABLE `tbl_private_messages`( `message_id` int NOT NULL, `sender_id` int DEFAULT NULL, `receiver_id` int DEFAULT NULL, `subject` varchar(255) DEFAULT NULL, `body` text, `sending_time` timestamp NULL DEFAULT NULL, `is_read` tinyint(1) DEFAULT NULL, `is_archived` tinyint(1) DEFAULT NULL, `is_deleted_by_sender` tinyint(1) DEFAULT NULL, `is_deleted_by_receiver` tinyint(1) DEFAULT NULL, `is_flagged` tinyint(1) DEFAULT NULL, `priority` int DEFAULT NULL, `attachment_id` int DEFAULT NULL, `conversation_id` int DEFAULT NULL, `status` varchar(50) DEFAULT NULL, `parent_message_id` int DEFAULT NULL, `read_timestamp` timestamp NULL DEFAULT NULL, `message_data` json DEFAULT NULL, PRIMARY KEY(`message_id`), KEY `sender_id`(`sender_id`), KEY `receiver_id`(`receiver_id`), KEY `attachment_id`(`attachment_id`), KEY `parent_message_id`(`parent_message_id`), CONSTRAINT `tbl_private_messages_ibfk_1` FOREIGN KEY(`sender_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_private_messages_ibfk_2` FOREIGN KEY(`receiver_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_private_messages_ibfk_3` FOREIGN KEY(`attachment_id`) REFERENCES `tbl_attachments`(`attachment_id`), CONSTRAINT `tbl_private_messages_ibfk_4` FOREIGN KEY(`parent_message_id`) REFERENCES `tbl_private_messages`(`message_id`)); CREATE TABLE `tbl_reactions`( `reaction_id` int NOT NULL, `comment_id` int DEFAULT NULL, `user_id` int DEFAULT NULL, `post_id` int DEFAULT NULL, `reaction_type` varchar(255) DEFAULT NULL, `reaction_date` timestamp NULL DEFAULT NULL, `reaction_score` int DEFAULT NULL, `reaction_text` text, `is_active` tinyint(1) DEFAULT NULL, `reaction_count` int DEFAULT NULL, `source_ip` varchar(255) DEFAULT NULL, `device_info` json DEFAULT NULL, PRIMARY KEY(`reaction_id`), KEY `comment_id`(`comment_id`), CONSTRAINT `tbl_reactions_ibfk_1` FOREIGN KEY(`comment_id`) REFERENCES `tbl_comments`(`comment_id`)); CREATE TABLE `tbl_reports`( `report_id` int NOT NULL, `user_id` int DEFAULT NULL, `post_id` int DEFAULT NULL, `report_reason` varchar(255) DEFAULT NULL, `report_timestamp` timestamp NULL DEFAULT NULL, `is_resolved` tinyint(1) DEFAULT NULL, `resolved_by` int DEFAULT NULL, `resolution_timestamp` timestamp NULL DEFAULT NULL, `report_comments` text, `severity_level` int DEFAULT NULL, `report_type` varchar(50) DEFAULT NULL, `report_entity_type` varchar(50) DEFAULT NULL, `report_entity_id` int DEFAULT NULL, `action_taken` text, `action_timestamp` timestamp NULL DEFAULT NULL, `report_ip_address` varchar(15) DEFAULT NULL, `reported_user_id` int DEFAULT NULL, `reported_comment_id` int DEFAULT NULL, `reported_user_reputation` int DEFAULT NULL, `report_category` varchar(50) DEFAULT NULL, `reported_context_text` text, `attachments` json DEFAULT NULL, `flagged_user` tinyint(1) DEFAULT NULL, `report_source` varchar(50) DEFAULT NULL, `report_feedback` text, `report_verification_status` varchar(50) DEFAULT NULL, `report_mechanism` varchar(50) DEFAULT NULL, `report_priority` int DEFAULT NULL, `assigned_to` int DEFAULT NULL, `report_history` json DEFAULT NULL, PRIMARY KEY(`report_id`), KEY `user_id`(`user_id`), KEY `post_id`(`post_id`), KEY `resolved_by`(`resolved_by`), KEY `reported_user_id`(`reported_user_id`), KEY `reported_comment_id`(`reported_comment_id`), CONSTRAINT `tbl_reports_ibfk_1` FOREIGN KEY(`user_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_reports_ibfk_2` FOREIGN KEY(`post_id`) REFERENCES `tbl_posts`(`post_id`), CONSTRAINT `tbl_reports_ibfk_3` FOREIGN KEY(`resolved_by`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_reports_ibfk_4` FOREIGN KEY(`reported_user_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_reports_ibfk_5` FOREIGN KEY(`reported_comment_id`) REFERENCES `tbl_comments`(`comment_id`)); CREATE TABLE `tbl_status`( `status_id` int NOT NULL, `Name` varchar(255) DEFAULT NULL, PRIMARY KEY(`status_id`)); CREATE TABLE `tbl_tags`( `tag_id` int NOT NULL, `creator_id` int DEFAULT NULL, `category_id` int DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `description` text, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `slug` varchar(255) DEFAULT NULL, `count` int DEFAULT NULL, `visibility` tinyint(1) DEFAULT NULL, `active` tinyint(1) DEFAULT NULL, `parent_tag` int DEFAULT NULL, `status_id` int DEFAULT NULL, `access_level` int DEFAULT NULL, `is_approved` tinyint(1) DEFAULT NULL, `metadata` json DEFAULT NULL, `is_edited` tinyint(1) DEFAULT NULL, PRIMARY KEY(`tag_id`), KEY `creator_id`(`creator_id`), KEY `category_id`(`category_id`), CONSTRAINT `tbl_tags_ibfk_1` FOREIGN KEY(`creator_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_tags_ibfk_2` FOREIGN KEY(`category_id`) REFERENCES `tbl_categories`(`category_id`)); CREATE TABLE `tbl_tags_hierarchy`( `tag_hierarchy_id` int NOT NULL, `tag_id` int DEFAULT NULL, `relationship_type` varchar(255) DEFAULT NULL, `weight` decimal(10, 2) DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `active` tinyint(1) DEFAULT NULL, `description` text, `creator_id` int DEFAULT NULL, `modifier_id` int DEFAULT NULL, `is_deleted` tinyint(1) DEFAULT NULL, `deleted_at` timestamp NULL DEFAULT NULL, `revision_history` json DEFAULT NULL, `comments` json DEFAULT NULL, PRIMARY KEY(`tag_hierarchy_id`)); CREATE TABLE `tbl_user_activity`( `activity_id` int NOT NULL, `user_id` int DEFAULT NULL, `activity_type` varchar(255) DEFAULT NULL, `activity_timestamp` timestamp NULL DEFAULT NULL, `post_id` int DEFAULT NULL, `comment_id` int DEFAULT NULL, `activity_description` text, `activity_source` varchar(255) DEFAULT NULL, `activity_location` varchar(255) DEFAULT NULL, `activity_duration` int DEFAULT NULL, `activity_device` varchar(255) DEFAULT NULL, `activity_status` varchar(50) DEFAULT NULL, `activity_impact` varchar(50) DEFAULT NULL, `activity_privacy_level` varchar(50) DEFAULT NULL, `activity_related_users` json DEFAULT NULL, `activiy_extra_data` json DEFAULT NULL, `ip_address` varchar(15) DEFAULT NULL, `user_agent` varchar(255) DEFAULT NULL, `url` varchar(255) DEFAULT NULL, `session_id` varchar(255) DEFAULT NULL, `browser` varchar(255) DEFAULT NULL, `operating_system` varchar(255) DEFAULT NULL, `referrer` varchar(255) DEFAULT NULL, `event_id` int DEFAULT NULL, `error_message` text, `location_coordinates` json DEFAULT NULL, `session_duration` int DEFAULT NULL, PRIMARY KEY(`activity_id`), KEY `user_id`(`user_id`), KEY `post_id`(`post_id`), KEY `comment_id`(`comment_id`), CONSTRAINT `tbl_user_activity_ibfk_1` FOREIGN KEY(`user_id`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_user_activity_ibfk_2` FOREIGN KEY(`post_id`) REFERENCES `tbl_posts`(`post_id`), CONSTRAINT `tbl_user_activity_ibfk_3` FOREIGN KEY(`comment_id`) REFERENCES `tbl_comments`(`comment_id`)); CREATE TABLE `tbl_user_roles`( `role_id` int NOT NULL, `created_by` int DEFAULT NULL, `updated_by` int DEFAULT NULL, `description` varchar(255) DEFAULT NULL, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `permissions` json DEFAULT NULL, `role_name` varchar(50) DEFAULT NULL, `is_active` tinyint(1) DEFAULT NULL, `restrictions` json DEFAULT NULL, `expiry_date` date DEFAULT NULL, `created_by_ip` varchar(50) DEFAULT NULL, `updated_by_ip` varchar(50) DEFAULT NULL, `created_by_device` varchar(100) DEFAULT NULL, `updated_by_device` varchar(100) DEFAULT NULL, `active_sessions` int DEFAULT NULL, `last_sessions` json DEFAULT NULL, PRIMARY KEY(`role_id`), KEY `created_by`(`created_by`), KEY `updated_by`(`updated_by`), CONSTRAINT `tbl_user_roles_ibfk_1` FOREIGN KEY(`created_by`) REFERENCES `tbl_users`(`user_id`), CONSTRAINT `tbl_user_roles_ibfk_2` FOREIGN KEY(`updated_by`) REFERENCES `tbl_users`(`user_id`)); CREATE TABLE `tbl_users`( `user_id` int NOT NULL, `first_name` varchar(255) DEFAULT NULL, `last_name` varchar(255) DEFAULT NULL, `username` varchar(255) DEFAULT NULL, `password_hash` varchar(255) DEFAULT NULL, `social_media_links` json DEFAULT NULL, `contact_info` json DEFAULT NULL, `avatar_url` varchar(255) DEFAULT NULL, `bio` text, `website` varchar(255) DEFAULT NULL, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `notification_preferences` varchar(255) DEFAULT NULL, `role_id` int DEFAULT NULL, `last_login` timestamp NULL DEFAULT NULL, `active` tinyint(1) DEFAULT NULL, PRIMARY KEY(`user_id`));