Message
メッセージとその応答を格納するmySQLでこのようなテーブルを作成するにはどうすればよいですか?
4964 次
2 に答える
7
あなたはこれを試すことができます:
create table messages (
message_id int primary key,
response_to int null references messages(message_id), -- self relationship
user_from int not null references users(user_id),
user_to int not null references users(user_id),
content varchar(200) not null
);
最初のメッセージには、null
値unresponse_to
フィールドがあります。
補足として、「メッセージ」ではなく「会話」を格納することを計画している場合は、会話のJSONまたはXML表現を格納するためのCLOB(文字ラージオブジェクト)を含むプレーンテーブルを検討してください。クエリが高速化されます(個々のメッセージではなく、会話全体を一度に読むことを常に計画している場合)。
于 2013-03-25T10:23:07.143 に答える
1
元のmessageIdを参照するforeign_keyを作成できますが、元のメッセージにはこのキーが設定されていないため、null値を許可することを忘れないでください。
ただし、スレッドテーブルを用意し、メッセージテーブルにthreadIdを保存して、どのメッセージがどのスレッドに属しているかを照合できるようにすることは、より良いアプローチではありません。投稿時間は、応答メッセージを識別するための優れた指標になる可能性があります。
于 2013-03-25T10:23:35.680 に答える