2009-06-28 4 views
0

私は友人のためのプロジェクトに取り組んでいます。難しい決定をしました。プロジェクトはエッセイで構成されています。エッセイのそれぞれには挑戦することができ、コメントも付いています。事はこれです、一人だけがエッセイに挑戦することができます、そして、他の誰もロックアウトされ、コメントすることができます。「Rebuttals」と「Comments」 - 2つのDB-Tablesまたは1つ?

反駁は、2つの応答深度、最初の2,000単語、2番目の単語の500単語のみにすることができます。その時点で、反論はこれ以上ない - 視聴者がトピックが使い果たされていないと感じる場合、残りの議論がコメント(反論とは異なり、長さがn文字の固定長)で行われる。

私は当初、反駁とコメントは構造的に同じであると判断し、コメントテーブル内にブール値フィールドを追加して、コメントがis_rebuttalかどうかを示しました。しかし、私はその方向性について少し不安を感じている。

あなたは何を提案しますか?各エッセイは2人だけの間で議論することができ、両方とも2回話すことができます。コメントと非常に似ていますが、分かれています。

+0

これは会話のようですか?人物Aは何かを書く、人物Bは同意しない、そして人物Aは人物Bに返答し、人物Bは人物Aの返事に返答することができる。 – nilamo

+0

正解、Nilamo。人物Aはエッセイを発行しています。人Bは事実のいくつかに異議を唱え、議論が始まります。それ以降の2つの出版物の後には「疲れた」ことになり、討論自体とは異なる「コメント」によって許可された唯一のコミュニケーションが行われます。 – Sampson

+0

コメントはエッセイが投稿された後に入力することができます。 反駁を入力するかどうかは関係ありませんか? – hythlodayr

答えて

1

私はおそらく、エッセイポスターのuserID、単一レスポンダー(最初はNULL)、おそらくタイトルや要約のフィールドを持つ '会話'用のテーブルを持っていました。別のテーブルには、エッセイまたはrebutterのuserID、conversationID、投稿の本文、およびそれらを順番に並べるための投稿数のフィールドを含む「エッセイ」が含まれています。最後に、私はコメントのポスターuserIDs、エッセイの投稿にそれらをリンクするessayID、commentIDのスレッドモード(それが適切である場合)とコメント本体にそれらを入れるための 'comments'テーブルを持っています。

+0

+1私は別のメタ会話テーブルのアイデアが好きで、問題の議論にタイトルを付けることができます。私はあなたの答えのbitwise側面を楽しむ:1つのテーブルまたは2つのテーブル? 3つのテーブル。 – akf

+0

私はこのように多く考えています。通常、それは「物」のそれぞれをモデル化する単純な問題です。物事が何らかのグループに属する場合、それらもモデル化する必要があります。 – SingleNegationElimination

1

まあ、システムについてもっと知っていなくても言い難いです。しかし、私は、あなたが書いたものから、はい、反駁は&のコメントは似ているので、単一のテーブルに入れるべきだと言っています。

私のモットーは常にです:疑問がある場合は、最も簡単な方法を使用してください。これは明らかに単一のテーブルです。

後で、別のテーブルがより有用であることが判明した場合は、いつでもリファクタリングすることができます。

+0

"Rebuttal B"を特定することは、Is_Rebuttal、Comment_ID、Comment_DateTime、およびComment_Author_IDをチェックすることになりますか? – Sampson

0

コメントと反駁の最大長が違う場合や、エッセイごとに持つことのできる数に制限がある場合は、私とはまったく違ったものに聞こえます。制約の異なるエンティティ用に2つの表を作成し、異なる列制約と参照制約を設定すると、スキーマがより明確になります。

+0

彼らは違いがある、はい。私は類似点/相違点をもう少し徹底的に比較すべきだと思います。ありがとう。 – Sampson

関連する問題