0

データベースに転置してから Web アプリケーションで使用する必要がある調査について、次の質問があるとします。

先週末、次のうちどれを食べましたか?

  • アイスクリーム
  • サラダ
  • フライドチキン

上記では、接続を自動的に行います。しかし、質問をデータベースで意味のあるものにするためには、次のように保存する必要がありますか?:

  • 先週末、アイスクリームを食べましたか。
  • 先週末、サラダを食べましたか。
  • 先週末、フライド・チェックを食べましたか。

Micheal の のようなデザインを使用しているとします。これらを次のようにテーブルに格納するのが妥当と思われます。

[During the last weekend, did you eat ice cream] -> questions_table.question_name
[Yes/No] -> Option_group_table.option_group_name
[Yes][No] -> option_choices_table.option_choice_name
[True or False] -> answers_table.answers_yn

それでも、このデータからウェブページを作成したい場合は、表示が煩雑になります。

  • 先週末、アイスクリームを食べましたか。
  • 先週末、サラダを食べましたか。
  • 先週末、フライド・チェックを食べましたか。

フロントエンドの webapp がこれを処理する必要がありますか? 正規表現のような何らかの手段を介して?

Function_to_help_properly_display_string("String")

このアプローチの短所は、異なる question.question_names (文字列) を同じ方法で処理できないことです。例えば:

次のうち、週末に行ったのはどれ?

  • ドイツ
  • フランス

元の質問と同じように処理できませんでした。

または、データベースは、より多くの列を持つ可能性を考慮に入れる必要がありますか?

[Question table]
[question.heading] -> During the last weekend, which of the following did you eat?:
[question.list] -> ice cream
[question.full] -> During the last weekend, did you eat ice cream? 

このようなことを行うことの短所は、反復的で雑然としているように見えることです。

ほとんどの場合、それらは私が提示していない 3 番目のオプションです。お気軽に共有してください。前もって感謝します、

4

1 に答える 1

1

アンケートのデータベース設計/UI設計を数回行ったことがありますが、使用したものは次のとおりです。

表: 質問

フィールド: question_id、question_text、display_order、question_type、必須

display_order、question_type、必須フィールドはすべて UI へのヒントであることに注意してください。質問と回答を一緒にテキストに保存していませんが、UI に質問を表示する方法について Web 開発者にヒントを提供しています。表示する順序、質問の種類 (チェックボックス/複数選択、またはラジオ ボタン/1 つの選択)、質問が必須かどうかを伝えます。

表: question_options

フィールド: question_option_id、question_id、option_text、display_order

ここでも同じです。表示順序とオプション テキストに関する UI ヘルプがいくつかあります。このオプションでは、UI で何が起こるかを指示していないことに注意してください。それは質問レベルで保持されます。これは、オプションの表示方法 (ドロップダウン、ラジオ ボタン、チェックボックスなど) を簡単に変更できることを意味します。

また、質問に参加する機能を残していることにも注意してください。

表:答え

フィールド: user_id、question_id、question_option_id

これは、特定のユーザーと特定の質問について、ユーザーが何に答えたかを単純に教えてくれます。

これら 3 つの構造はすべて、データベースで調査を行うための適切な出発点です。UI はかなり自然に流れます。データを Web アプリケーションに返すには、クエリやストアド プロシージャを作成する必要がありますが、難しくはありません。

(一般に、データベースからのデータの表示の一部として文字列の解析を試みるのは賢明ではないと思います。つまり、正規表現を使用して質問/回答を構成し、UI に表示するのは賢明ではないと思います。モデルデータベースが正しいと、アプリケーションの残りの部分のコーディングが難しくないことがわかります。)

于 2013-01-13T23:51:31.233 に答える