「反論」と「コメント」 - 二DB-のテーブルまたはワン?
-
20-08-2019 - |
質問
私は友人のためのプロジェクトに取り組んでいると私は難しい決断に遭遇しました。このプロジェクトは、上のコメントにも挑戦することができ、それぞれのエッセイで構成されています。事はこれで、一人だけではエッセイに挑戦することができ、その後、他のみんながロックアウトされるとのみコメントすることができます。
反論は、深い2つの応答は、第1および第2の500個の単語2,000語であってもよいです。その時点で、これ以上の反論 - 議論の残りの部分は、視聴者がトピックが疲れはなかったと感じた場合(反論とは異なり、n個の文字の固定長)のコメントで行われていない
。だから私は当初、反論やコメントが構造的に同じものだった、と私は単に場合は、コメントis_rebuttalを示すために、私のコメントテーブル内のブールフィールドを追加することを決めました。しかし、私はその方向について少しわからない感じてます。
集団-あなたは何を示唆していますか?各エッセイは、二人だけの間で議論を持っている、との両方のみ2回を話すために得ることができます。非常コメントに似てますが、別々ます。
解決
だから私はおそらく、エッセイのポスターのユーザーIDのためのフィールドで、「会話」のための単一のレスポンダ(最初はNULL)と、おそらくタイトルや要約をテーブルを持っていると思います。別のテーブルには、順序でそれらを置くためにエッセイやrebutterのユーザーIDのためのフィールドを持つ「エッセイ」はconversationId、ポストのボディ、および投稿数が含まれます。最後に、私はコメントポスターのユーザーIDとコメント 'テーブルを持っているだろう、essayIDのは(それが良いと考えの場合)commentIDのは、スレッドモードでそれらを置くために、エッセイのポストにそれらをリンクすること、そしてもちろんのコメント本体ます。
他のヒント
さて、ハードシステムについての詳細を知らなくても言うこと。しかし、私ははい、反論&コメントが類似しており、単一のテーブルに配置する必要があり、あなたが書いたものから、言うと思います。
私のモットーは常にある:疑いで、最も簡単な方法を使用する場合。これは、ここで明確に単一のテーブルです。
後でそれが別々のテーブルには、より有用であることが判明した場合、、あなたは常にリファクタリングすることができます。
コメントや反論が異なる最大の長さを持っている場合は、あなたがエッセイごとに持つことができますどのように多くの異なる制限、彼らは私には非常に異なるもののように聞こえます。あなたのスキーマを使用すると、さまざまな制限を持つエンティティのための2つのテーブルを作成した場合より明確に、そして別の列と参照制約を確立します。