CREATE TABLE article ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, user_id INTEGER UNSIGNED NOT NULL, comment_id INTEGER UNSIGNED NOT NULL, user_comment_id INTEGER UNSIGNED NOT NULL, title VARCHAR NULL, content TEXT NULL, created_at TIMESTAMP NULL, updated_at TIMESTAMP NULL, PRIMARY KEY(id, user_id, comment_id, user_comment_id), INDEX article_FKIndex1(user_id, user_comment_id), INDEX article_FKIndex2(comment_id) ); CREATE TABLE article_has_tag ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, article_id INTEGER UNSIGNED NOT NULL, tag_id INTEGER UNSIGNED NOT NULL, article_user_id INTEGER UNSIGNED NOT NULL, article_comment_id INTEGER UNSIGNED NOT NULL, article_user_comment_id INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id, article_id, tag_id, article_user_id, article_comment_id, article_user_comment_id), INDEX article_has_tag_FKIndex2(article_id, article_user_id, article_comment_id, article_user_comment_id), INDEX article_has_tag_FKIndex2(tag_id) ); CREATE TABLE comment ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, user_id INTEGER UNSIGNED NULL, article_id INTEGER UNSIGNED NULL, created_at TIMESTAMP NULL, content TEXT NULL, PRIMARY KEY(id) ); CREATE TABLE group ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, user_profile_user_id INTEGER UNSIGNED NOT NULL, user_profile_id INTEGER UNSIGNED NOT NULL, user_profile_user_comment_id INTEGER UNSIGNED NOT NULL, group_name VARCHAR NULL, PRIMARY KEY(id, user_profile_user_id, user_profile_id, user_profile_user_comment_id), INDEX group_FKIndex1(user_profile_id, user_profile_user_id, user_profile_user_comment_id) ); CREATE TABLE tag ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, name INTEGER UNSIGNED NULL, PRIMARY KEY(id) ); CREATE TABLE user ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, comment_id INTEGER UNSIGNED NOT NULL, username INTEGER UNSIGNED NULL, password VARCHAR NULL, group INTEGER UNSIGNED NULL, is_admin BOOL NULL, created_at TIMESTAMP NULL, PRIMARY KEY(id, comment_id), INDEX user_FKIndex1(comment_id) ); CREATE TABLE user_profile ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, user_id INTEGER UNSIGNED NOT NULL, user_comment_id INTEGER UNSIGNED NOT NULL, group_id INTEGER UNSIGNED NULL, firstname VARCHAR NULL, lastname VARCHAR NULL, email VARCHAR NULL, PRIMARY KEY(id, user_id, user_comment_id), INDEX user_profile_FKIndex1(user_id, user_comment_id) );