0

私のプロジェクトでは、「admin」はテキストフィールドを動的に作成し(jsp + javascriptを使用)、enterは保存するテキストフィールドにデータを入力できます。バックエンドでは、データベースに保存する必要があります。ここで問題は

1)管理者が作成しているテキストフィールドに応じて動的に列を作成する方法。たとえば、彼が5つのテキストフィールドを作成している場合は、データベースに5つの列を作成する必要があります。彼が10を使用している場合は、10の列を作成する必要があります。

mysql、jsp、struts、hibernateでこれを行うim

4

1 に答える 1

1

リレーショナルストアを使用している場合、これらは列ではなく可変行用に最適化されています。すなわち。変数番号を列ではなく行に配置することを検討してください。

私の提案は、単にヘッダーテーブルと詳細テーブルを用意することです。

その場合、ヘッダーは(1)であり、詳細は多くの変数です。次に必要なのは、詳細の4列だけです。

detail_id (pk), header_id (fk), detail_item_no, detail_value

とヘッダー

header_id (pk), .. any other items that are in all types...

ヘッダー行ごとに必要な数の行を追加します。10が必要な場合はdetail_item_noが1から10になり、5が必要な場合はdetail_item_noが1から5になります

欠点は、詳細を取得するためのクエリが、単純な選択ではなく単純な結合を伴うため、少し複雑になることです。

OTOH現在、列が20列しかない場合は、その列数でテーブルを作成し、未使用の列は未使用のままにします。

于 2012-11-17T04:56:04.560 に答える