メッセージ自体を含むmessage
テーブルがあります。私はこれらの2つを分けるべきかどうか、もしあれば利益があるかどうかは分かりません。MySQLのチャットメッセージテーブルにTEXTメッセージ自体が含まれているか、または別のテーブルに入れておくべきですか?
CREATE TABLE message (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
from_id INT UNSIGNED NOT NULL,
to_id INT UNSIGNED NOT NULL,
thread_id INT UNSIGNED NOT NULL,
message TEXT NOT NULL,
is_viewed BOOL NOT NULL
);
これをさらに標準化すべきですか?
CREATE TABLE user_sent_message (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
message_id INT UNSIGNED NOT NULL,
from_id INT UNSIGNED NOT NULL,
to_id INT UNSIGNED NOT NULL,
thread_id INT UNSIGNED NOT NULL,
is_viewed BOOL NOT NULL
);
CREATE TABLE message (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
message TEXT NOT NULL
);
クエリが複雑になるわけではありませんか?何か利点がある場合、これを行うメリットは何ですか?私は、第1の選択肢のテーブルサイズが第2の選択肢では2つのテーブルに比べてずっと少なく、分散されることを理解している。クエリやメモリ使用時にパフォーマンスに影響を与えますか?