3

シンプルなプライベート メッセージ システムを作成していますが、どちらのデータベース設計が優れているかわかりません。

最初のデザインは、メッセージ用のテーブルとメッセージ コメント用のテーブルです。

Message
---------------
id
recipientId
senderId
title
body
created_at

MessageComment
---------------
id
messageId
senderId
body
created_at

2 番目のデザインは、メッセージとコメントの両方に対応する 1 つのテーブルであり、追加フィールドでmessageIdあるため、メッセージをコメントとして連鎖させることができます。

Message
---------------
id
recipientId
senderId
messageId
title
body
created_at

あなたの意見を聞きたいです!

4

3 に答える 3

5

この場合、私は 1 つのテーブルに投票します。

一般に、2 つのテーブルのデータが同じか非常に似ていて、それらが表す論理的概念が密接に関連している場合はいつでも、それらを 1 つのテーブルに入れます。データに多くの違いがある場合、または概念が実際に異なる場合は、2 つのテーブルにします。

2 つのテーブルを作成し、その 2 つの結合を行うクエリを定期的に作成していることに気付いた場合は、それらを結合する必要があることを示しています。

1 つのテーブルを作成しても、ケース A では常に null であるフィールドが多く、ケース B では常に null である他のフィールドが多数ある場合、または「タイプ A の場合、このフィールドはは郵便番号ですが、タイプ B の場合は製品のシリアル番号です。」

于 2011-08-08T17:17:57.173 に答える
0

単一のテーブルを使用するのが最も有利です。

これにより、メッセージスレッドの可能性が高まり、作業の重複、つまり列を追加したいときに何が起こるかが減ります。

于 2011-08-08T15:50:13.480 に答える
0

私はむしろ最初のものを使用し、del_code両方のテーブルに追加のフィールドを含めたいと思います。したがって、削除されたメッセージを非表示にして、データベースに保持することができます。

于 2011-08-08T15:52:11.930 に答える