web-dev-qa-db-ja.com

投票システムでの機能の編集

現在のデザインでは、投票システムにより、ユーザーは [〜#〜] crud [〜#〜] 投票できます。今気になるのは、編集部分です。

ユーザーが4つの選択肢を持つ新しいトピックを作成したとします。さまざまなユーザーが投じた投票はすべて、統計用のデータベースに記録されます。さて、ある瞬間を想像してみてください。統計は次のとおりです。

  • 朝食には何を食べたらいいですか?

    1. パン-30%
    2. オートミール-40%
    3. アップル-5%
    4. 卵-25%

システムが許可する必要があるもの:

  1. トピックのタイトルを変更しますか? 「朝食に何を食べたらいいですか」から変更したとしましょう。 「どの車を購入すればよいですか?」
  2. 選択肢を追加、変更、または削除する作成者ですか?たとえば、選択肢1を「ヌードル」に変更したり、選択肢3「アップル」を削除したりできますか?

これらのアクションが許可されている場合、選択が変更されたときに統計をリセットする必要がありますか?

2
S.C.

あなたの2つの例は、質問の編集が結果をリセットする必要があることを明らかにしていますが、結果をリセットしたくない質問へのそれほど劇的な変更は想像できないでしょう。

たとえば、投票の元のバージョンで選択肢#2のスペルが「Oatmael」と誤って入力され、編集によって修正された場合、以前に収集された投票を必ずしも削除する必要はありません。

これを投票システムとして説明しているので、質問が編集されるたびに以前の回答をリセット/破棄する動作を使用して、結果を歪めることができます。たとえば、ある地域の保守派のほとんどが仕事に行く途中の朝に投票した場合、午前10時頃に質問を編集すると、結果が自由主義者に通知される可能性があります。

ただし、質問が編集されたときに以前の回答をリセットしないことは、結果の有効性に悪影響を与えます。利用可能な選択肢の意味が修正または再配置される場合、変更前に収集された投票は、有権者の同意なしに意図された意味が変更される可能性があります。

UXの観点からは、最初の投票が行われたらすぐに質問と選択リストをロックするのが適切な設計です。その瞬間までの編集を許可して、スペルの修正と選択の並べ替えを可能にします。その後、最初の投票が行われると、その投票の神聖さを尊重して、それ以上の編集を禁止します。

システム設計の観点からは、別のオプションを想像できますが、データベース設計で処理する必要があります。システムは、投票が始まった後に編集を行うことができますが、投票が閉じられた後のプロセス全体を分析するのに十分な詳細で、そのような動作の厳密な監査を維持する必要があります。

  1. 質問またはその選択リストの編集はすべて、新しいバージョンの作成として扱われる必要があります。

  2. すべてのバージョンは、そのバージョンについて収集された投票とともに、個別に保存する必要があります。

  3. 結果の最終報告には、質問の各バージョンの集計結果を含め、その後にすべてのバージョンの合計を集計する必要があります。

大量の情報が保存され報告可能であり、保存された情報を不明瞭にするために使用できる要約レポートがない場合、事前投票の整合性を損なうことなく、質問とその選択リストの編集を可能にする投票システムが存在する可能性があります。投票を変更します。

2
Henry Taylor

投票に質問を投げるとき、正確な表現は人々が行う選択に大きな影響を与える可能性があります。したがって、投票の質問を変更すると、基本的に既存の投票が無効になります。例えば。 「チョコレートを食べますか?」対「チョコレートは好きですか?」本質的に同じ質問である一方で、異なるバイアスが生じる可能性があります。

結果についても同じことが言えます。最初の投票が次のようなものであったとしましょう

どっちがいい?

  1. 鋭い棒で目の中に突く
  2. 風防と羽毛

そして、いくつかの投票の後、「宝くじに当たる」という3番目のオプションを追加しました。明らかに、以前の投票は、それらのほとんどがおそらく行ったであろう新しい3番目の選択を考えると無効です。

したがって、投票に変更を加えると、以前のすべての結果が無効になります。したがって、投票の編集は許可しないか、投票を編集してその投票のすべての統計をリセットする必要があります。実際には、リセットする部分的投票は有用な洞察を持っている可能性があるため、分析のために保持することができます。


これについての楽しい読み物は、統計と嘘をつく方法を見てください。DarrellHuff

2
JohnGB