datasets/bat/setup/db_blog/sqlite/setup.sql (406 lines of code) (raw):
CREATE TABLE tbl_attachments (
attachment_id INTEGER PRIMARY KEY,
post_id INTEGER,
user_id INTEGER,
file_name TEXT,
file_path TEXT,
file_size INTEGER,
file_type TEXT,
upload_date DATETIME,
description TEXT,
is_active BOOLEAN,
visibility_status TEXT,
download_count INTEGER,
file_extension TEXT,
uploaded_by_ip TEXT,
last_modified DATETIME,
expiration_date DATETIME,
tags_file TEXT,
category_file TEXT,
access_permissions TEXT,
storage_location TEXT,
metadata TEXT,
is_featured BOOLEAN,
parent_attachment_id INTEGER,
FOREIGN KEY (post_id) REFERENCES tbl_posts(post_id) ON DELETE SET NULL,
FOREIGN KEY (user_id) REFERENCES tbl_users(user_id) ON DELETE SET NULL,
FOREIGN KEY (parent_attachment_id) REFERENCES tbl_attachments(attachment_id) ON DELETE SET NULL
);
CREATE TABLE tbl_categories (
category_id INTEGER PRIMARY KEY,
created_by INTEGER,
updated_by INTEGER,
name TEXT,
description TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP,
parent_category INTEGER,
slug TEXT,
image TEXT,
count INTEGER,
visibility INTEGER CHECK (visibility IN (0, 1)),
is_edited INTEGER CHECK (is_edited IN (0, 1)),
FOREIGN KEY (created_by) REFERENCES tbl_users(user_id) ON DELETE SET NULL,
FOREIGN KEY (updated_by) REFERENCES tbl_users(user_id) ON DELETE SET NULL
);
CREATE TABLE tbl_categories_hierarchy (
category_hierarchy_id INTEGER PRIMARY KEY,
category_id INTEGER,
created_by INTEGER,
updated_by INTEGER,
name TEXT,
description TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP,
status TEXT,
visibility TEXT,
orden_priority INTEGER,
icon TEXT,
color TEXT,
metadata TEXT,
parent_category_name TEXT,
FOREIGN KEY (category_id) REFERENCES tbl_categories(category_id) ON DELETE SET NULL,
FOREIGN KEY (created_by) REFERENCES tbl_users(user_id) ON DELETE SET NULL,
FOREIGN KEY (updated_by) REFERENCES tbl_users(user_id) ON DELETE SET NULL
);
CREATE TABLE tbl_comments (
comment_id INTEGER PRIMARY KEY,
content TEXT,
user_id INTEGER,
post_id INTEGER,
parent_comment_id INTEGER,
likes_count INTEGER DEFAULT 0,
created_at TIMESTAMP,
updated_at TIMESTAMP,
is_approved INTEGER DEFAULT 0,
dislikes_count INTEGER DEFAULT 0,
report_count INTEGER DEFAULT 0,
is_deleted INTEGER DEFAULT 0,
user_ip TEXT,
user_agent TEXT,
is_flagged INTEGER DEFAULT 0,
reply_count INTEGER DEFAULT 0,
mentions TEXT,
attachments TEXT,
metadata TEXT,
is_edited INTEGER DEFAULT 0,
FOREIGN KEY (user_id) REFERENCES tbl_users(user_id) ON DELETE SET NULL,
FOREIGN KEY (post_id) REFERENCES tbl_posts(post_id) ON DELETE SET NULL
);
CREATE TABLE tbl_country (
country_name TEXT PRIMARY KEY,
country_id INTEGER,
continent TEXT,
region TEXT,
X REAL,
Y REAL,
FOREIGN KEY (country_id) REFERENCES tbl_users(user_id) ON DELETE SET NULL
);
CREATE TABLE tbl_followers (
follower_id INTEGER PRIMARY KEY,
following_id INTEGER,
created_at TIMESTAMP,
updated_at TIMESTAMP ,
follower_data TEXT DEFAULT NULL
);
CREATE TABLE tbl_labels (
label_id INTEGER PRIMARY KEY,
creator_id INTEGER DEFAULT NULL,
updated_by INTEGER DEFAULT NULL,
name TEXT DEFAULT NULL,
description TEXT DEFAULT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
post_count INTEGER DEFAULT NULL,
visibility_status TEXT DEFAULT NULL,
is_active INTEGER DEFAULT NULL,
usage_frequency INTEGER DEFAULT NULL,
parent_label_id INTEGER DEFAULT NULL,
FOREIGN KEY (creator_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (updated_by) REFERENCES tbl_users(user_id),
FOREIGN KEY (parent_label_id) REFERENCES tbl_labels(label_id)
);
CREATE TABLE tbl_media (
media_id INTEGER PRIMARY KEY,
post_id INTEGER DEFAULT NULL,
type TEXT DEFAULT NULL,
url TEXT DEFAULT NULL,
description TEXT DEFAULT NULL,
upload_date TEXT DEFAULT NULL,
updated_at TEXT DEFAULT NULL,
filename TEXT DEFAULT NULL,
file_size INTEGER DEFAULT NULL,
caption TEXT DEFAULT NULL,
uploader_id INTEGER DEFAULT NULL,
visibility TEXT DEFAULT NULL,
access_rights TEXT DEFAULT NULL,
file_path TEXT DEFAULT NULL,
metadata TEXT DEFAULT NULL,
hash TEXT DEFAULT NULL,
is_encrypted INTEGER DEFAULT NULL,
encryption_key TEXT DEFAULT NULL,
encryption_algorithm TEXT DEFAULT NULL,
status_id INTEGER DEFAULT NULL,
FOREIGN KEY (post_id) REFERENCES tbl_posts(post_id),
FOREIGN KEY (uploader_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (status_id) REFERENCES tbl_status(status_id)
);
CREATE TABLE tbl_notifications (
notification_id INTEGER PRIMARY KEY,
user_id INTEGER DEFAULT NULL,
notification_type TEXT DEFAULT NULL,
sender_id INTEGER DEFAULT NULL,
post_id INTEGER DEFAULT NULL,
comment_id INTEGER DEFAULT NULL,
notification_message TEXT DEFAULT NULL,
notification_date TEXT DEFAULT NULL,
is_read INTEGER DEFAULT NULL,
is_archived INTEGER DEFAULT NULL,
is_deleted INTEGER DEFAULT NULL,
link_to_notification TEXT DEFAULT NULL,
notification_priority INTEGER DEFAULT NULL,
additional_data TEXT DEFAULT NULL,
notification_subject TEXT DEFAULT NULL,
notification_status TEXT DEFAULT NULL,
notification_action TEXT DEFAULT NULL,
related_user_id INTEGER DEFAULT NULL,
source_application TEXT DEFAULT NULL,
notification_category TEXT DEFAULT NULL,
expiration_date TEXT DEFAULT NULL,
delivery_method TEXT DEFAULT NULL,
notification_channel TEXT DEFAULT NULL,
notification_language TEXT DEFAULT NULL,
recipient_group TEXT DEFAULT NULL,
notification_tags TEXT DEFAULT NULL,
notification_expiry_time TEXT DEFAULT NULL,
notification_context TEXT DEFAULT NULL,
notification_origin TEXT DEFAULT NULL,
FOREIGN KEY (user_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (sender_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (post_id) REFERENCES tbl_posts(post_id)
);
CREATE TABLE tbl_posts (
post_id INTEGER PRIMARY KEY,
user_id INTEGER DEFAULT NULL,
title TEXT DEFAULT NULL,
content TEXT DEFAULT NULL,
published_at TEXT DEFAULT NULL,
is_published INTEGER DEFAULT NULL,
views_count INTEGER DEFAULT NULL,
likes_count INTEGER DEFAULT NULL,
shares_count INTEGER DEFAULT NULL,
created_at TEXT DEFAULT NULL,
updated_at TEXT DEFAULT NULL,
slug TEXT DEFAULT NULL,
excerpt TEXT DEFAULT NULL,
status_id INTEGER DEFAULT NULL,
category_id INTEGER DEFAULT NULL,
dislikes_count INTEGER DEFAULT NULL,
comments_count INTEGER DEFAULT NULL,
is_featured INTEGER DEFAULT NULL,
author_name TEXT DEFAULT NULL,
image_url TEXT DEFAULT NULL,
tags TEXT DEFAULT NULL,
reading_time INTEGER DEFAULT NULL,
external_link TEXT DEFAULT NULL,
metadata TEXT DEFAULT NULL,
FOREIGN KEY (user_id) REFERENCES tbl_users(user_id)
);
CREATE TABLE tbl_posts_tags (
post_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
comments TEXT DEFAULT NULL,
label_status TEXT DEFAULT NULL,
label_at TEXT DEFAULT NULL,
PRIMARY KEY (post_id, tag_id),
FOREIGN KEY (tag_id) REFERENCES tbl_tags(tag_id),
FOREIGN KEY (post_id) REFERENCES tbl_posts(post_id)
);
CREATE TABLE tbl_private_messages (
message_id INTEGER NOT NULL PRIMARY KEY,
sender_id INTEGER DEFAULT NULL,
receiver_id INTEGER DEFAULT NULL,
subject TEXT DEFAULT NULL,
body TEXT,
sending_time TEXT DEFAULT NULL,
is_read INTEGER DEFAULT NULL,
is_archived INTEGER DEFAULT NULL,
is_deleted_by_sender INTEGER DEFAULT NULL,
is_deleted_by_receiver INTEGER DEFAULT NULL,
is_flagged INTEGER DEFAULT NULL,
priority INTEGER DEFAULT NULL,
attachment_id INTEGER DEFAULT NULL,
conversation_id INTEGER DEFAULT NULL,
status TEXT DEFAULT NULL,
parent_message_id INTEGER DEFAULT NULL,
read_timestamp TEXT DEFAULT NULL,
message_data TEXT DEFAULT NULL,
FOREIGN KEY (sender_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (receiver_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (attachment_id) REFERENCES tbl_attachments(attachment_id),
FOREIGN KEY (parent_message_id) REFERENCES tbl_private_messages(message_id)
);
CREATE TABLE tbl_reactions (
reaction_id INTEGER NOT NULL PRIMARY KEY,
comment_id INTEGER DEFAULT NULL,
user_id INTEGER DEFAULT NULL,
post_id INTEGER DEFAULT NULL,
reaction_type TEXT DEFAULT NULL,
reaction_date TEXT DEFAULT NULL,
reaction_score INTEGER DEFAULT NULL,
reaction_text TEXT DEFAULT NULL,
is_active INTEGER DEFAULT NULL,
reaction_count INTEGER DEFAULT NULL,
source_ip TEXT DEFAULT NULL,
device_info TEXT DEFAULT NULL,
FOREIGN KEY (comment_id) REFERENCES tbl_comments(comment_id)
);
CREATE TABLE tbl_reports (
report_id INTEGER NOT NULL PRIMARY KEY,
user_id INTEGER DEFAULT NULL,
post_id INTEGER DEFAULT NULL,
report_reason TEXT DEFAULT NULL,
report_timestamp TEXT DEFAULT NULL,
is_resolved INTEGER DEFAULT NULL,
resolved_by INTEGER DEFAULT NULL,
resolution_timestamp TEXT DEFAULT NULL,
report_comments TEXT DEFAULT NULL,
severity_level INTEGER DEFAULT NULL,
report_type TEXT DEFAULT NULL,
report_entity_type TEXT DEFAULT NULL,
report_entity_id INTEGER DEFAULT NULL,
action_taken TEXT DEFAULT NULL,
action_timestamp TEXT DEFAULT NULL,
report_ip_address TEXT DEFAULT NULL,
reported_user_id INTEGER DEFAULT NULL,
reported_comment_id INTEGER DEFAULT NULL,
reported_user_reputation INTEGER DEFAULT NULL,
report_category TEXT DEFAULT NULL,
reported_context_text TEXT DEFAULT NULL,
attachments TEXT DEFAULT NULL,
flagged_user INTEGER DEFAULT NULL,
report_source TEXT DEFAULT NULL,
report_feedback TEXT DEFAULT NULL,
report_verification_status TEXT DEFAULT NULL,
report_mechanism TEXT DEFAULT NULL,
report_priority INTEGER DEFAULT NULL,
assigned_to INTEGER DEFAULT NULL,
report_history TEXT DEFAULT NULL,
FOREIGN KEY (user_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (post_id) REFERENCES tbl_posts(post_id),
FOREIGN KEY (resolved_by) REFERENCES tbl_users(user_id),
FOREIGN KEY (reported_user_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (reported_comment_id) REFERENCES tbl_comments(comment_id)
);
CREATE TABLE tbl_status (
status_id INTEGER NOT NULL PRIMARY KEY,
Name TEXT DEFAULT NULL
);
CREATE TABLE tbl_tags (
tag_id INTEGER NOT NULL PRIMARY KEY,
creator_id INTEGER DEFAULT NULL,
category_id INTEGER DEFAULT NULL,
name TEXT DEFAULT NULL,
description TEXT DEFAULT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
slug TEXT DEFAULT NULL,
count INTEGER DEFAULT NULL,
visibility BOOLEAN DEFAULT NULL,
active BOOLEAN DEFAULT NULL,
parent_tag INTEGER DEFAULT NULL,
status_id INTEGER DEFAULT NULL,
access_level INTEGER DEFAULT NULL,
is_approved BOOLEAN DEFAULT NULL,
metadata TEXT DEFAULT NULL,
is_edited BOOLEAN DEFAULT NULL,
FOREIGN KEY (creator_id) REFERENCES tbl_users(user_id),
FOREIGN KEY (category_id) REFERENCES tbl_categories(category_id)
);
CREATE TABLE tbl_tags_hierarchy (
tag_hierarchy_id INTEGER NOT NULL PRIMARY KEY,
tag_id INTEGER DEFAULT NULL,
relationship_type TEXT DEFAULT NULL,
weight DECIMAL(10,2) DEFAULT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
active BOOLEAN DEFAULT NULL,
description TEXT DEFAULT NULL,
creator_id INTEGER DEFAULT NULL,
modifier_id INTEGER DEFAULT NULL,
is_deleted BOOLEAN DEFAULT NULL,
deleted_at TIMESTAMP DEFAULT NULL,
revision_history TEXT DEFAULT NULL,
comments TEXT DEFAULT NULL
);
CREATE TABLE tbl_user_activity (
activity_id INTEGER PRIMARY KEY,
user_id INTEGER,
activity_type TEXT,
activity_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
post_id INTEGER,
comment_id INTEGER,
activity_description TEXT,
activity_source TEXT,
activity_location TEXT,
activity_duration INTEGER,
activity_device TEXT,
activity_status TEXT,
activity_impact TEXT,
activity_privacy_level TEXT,
activity_related_users TEXT,
activity_extra_data TEXT,
ip_address TEXT,
user_agent TEXT,
url TEXT,
session_id TEXT,
browser TEXT,
operating_system TEXT,
referrer TEXT,
event_id INTEGER,
error_message TEXT,
location_coordinates TEXT,
session_duration INTEGER,
FOREIGN KEY (user_id) REFERENCES tbl_users(user_id) ON DELETE CASCADE,
FOREIGN KEY (post_id) REFERENCES tbl_posts(post_id) ON DELETE CASCADE,
FOREIGN KEY (comment_id) REFERENCES tbl_comments(comment_id) ON DELETE CASCADE
);
CREATE TABLE tbl_user_roles (
role_id INTEGER PRIMARY KEY,
created_by INTEGER,
updated_by INTEGER,
description TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP,
permissions TEXT,
role_name TEXT,
is_active INTEGER,
restrictions TEXT,
expiry_date DATE,
created_by_ip TEXT,
updated_by_ip TEXT,
created_by_device TEXT,
updated_by_device TEXT,
active_sessions INTEGER,
last_sessions TEXT,
FOREIGN KEY (created_by) REFERENCES tbl_users(user_id) ON DELETE SET NULL,
FOREIGN KEY (updated_by) REFERENCES tbl_users(user_id) ON DELETE SET NULL
);
CREATE TABLE tbl_users (
user_id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
username TEXT,
password_hash TEXT,
social_media_links TEXT,
contact_info TEXT,
avatar_url TEXT,
bio TEXT,
website TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
notification_preferences TEXT,
role_id INTEGER,
last_login TIMESTAMP,
active INTEGER
);