1

私は Cakephp を使用しており、ユーザーが独自のフォームを設計できるようにする必要があります (これはセットアップ ウィザードの段階で 1 回だけ行われ、実際の使用では約 12 のフォームが作成されます)。常に必要になるテーブルは、ユーザー、グループ、およびログ、設定です。事実上、これはユーザー フレンドリーなデータベース アプリです。

ビューを作成し、フォームとそれに続くデータを格納するための2つの実際のテーブルを用意することを考えていました:

Forms [id | name   | structure                                                   ]
      [1  | Details| {id:{type:key}q2:{type:text;validation:{select:male..}..}   ]
      [2  | Car    | {id:{type:key};car:{type:text;validation:{select:Honda... }}]

列「構造」には、フィールド、タイプ、および検証ルールをリストする json または xml 文字列が含まれます。

Forms_data [id | form_id | survey_id | key  | value ]
           [1  | 1       | 1         | q1   |  Male ]
           [2  | 1       | 1         | q2   | 1/1/76]
           [3  | 2       | 1         | Car  |  Honda]
           [4  | 2       | 1         | Eng  | Petrol]
           [5  | 1       | 2         | q1   |  Fem  ]
           [6  | 1       | 2         | q2   | 2/3/81]
           [7  | 2       | 2         | Car  |  Ford ]
           [8  | 2       | 2         | Eng  | Diesel]

Forms_data テーブルには、フォームの各フィールドのデータが含まれます。survey_id は、フォームの対象者を意味します。調査対象の 1 人は、それらについて多くのフォームを作成できます。キーは varchar になりますが、値は可能な限り最大のデータ型 (「段落テキスト」など) のサイズである必要があります。

または、(params/sanitised などを介して) ユーザーに「CREATE TABLE」を実行させ、データベースに実際のテーブルを作成させて、システムのクエリと最適化を最大限に活用し、cakephp ですべての魔法の機能を動作させる必要がありますか?

4

1 に答える 1

1

後でデータをどうしたいか、そしてどのくらいの量になるかによって異なります。DBMS システム (MySQL など) は、大量のデータを非常に高速に処理します。他の選択肢とは対照的に、非常に洗練された方法でデータをクエリすることもできます。トレードオフはもう少し複雑です。私はほとんどの場合、データベース ソリューションの側にいます。これにより、最大限の柔軟性が得られます。

于 2013-06-18T12:05:48.557 に答える