Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If I was an architector of the DB, I'd make structure like this (approx.)</p> <pre><code>CREATE TABLE statuses( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, description VARCHAR(255) DEFAULT NULL, PRIMARY KEY (id), UNIQUE INDEX name (name) ) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE TABLE users( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY (id), UNIQUE INDEX name (name) ) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE TABLE messages( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, reply_to INT(11) UNSIGNED NOT NULL, sender INT(11) UNSIGNED NOT NULL, recipient INT(11) UNSIGNED NOT NULL, subject VARCHAR(255) DEFAULT NULL, message TEXT DEFAULT NULL, `time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), INDEX FK_messages_messages_id (reply_to), INDEX FK_messages_users_id_recipient (recipient), INDEX FK_messages_users_id_sender (sender), CONSTRAINT FK_messages_messages_id FOREIGN KEY (reply_to) REFERENCES messages (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_messages_users_id_recipient FOREIGN KEY (recipient) REFERENCES users (id) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT FK_messages_users_id_sender FOREIGN KEY (sender) REFERENCES users (id) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE TABLE messages_statuses( message_id INT(11) UNSIGNED NOT NULL, status_id INT(11) UNSIGNED NOT NULL, PRIMARY KEY (message_id, status_id), INDEX FK_messages_statuses_statuses_id (status_id), CONSTRAINT FK_messages_statuses_messages_id FOREIGN KEY (message_id) REFERENCES messages (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_messages_statuses_statuses_id FOREIGN KEY (status_id) REFERENCES statuses (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci; </code></pre> <p>I don't see anything hard here but if you'll got any questions - feel free to ask.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload