私は、クラシック ASP アプリケーションのバックエンドである SQL Server 2008 のデータベース テーブルに取り組んでいます。各コースの「結果」を保持するこのデータベース テーブルを継承しました。
各行は「目的」を表し、「結果」は列に表示されます。列の値は、目的が特定の結果を満たしているかどうかを示します。
現在の db テーブルの列の例を次に示します。
ID | Objective | Outcome1 | Outcome2 | ... Outcome11
最近、新しい記述子のセットを各行に追加する必要性が表明されました。略して「KSA」と呼ばれ、「Knowledge, Skills, and Attitudes」の略です。基本的に、KSA セットは、各結果の説明を詳細に「展開」します。
ナレッジ内には、最初の結果に固有の一連の識別子があります。2 番目の結果には、異なる一連の識別子が含まれます。「スキル」と「態度」にはそれぞれ独自の識別子があり、結果によっても異なります。
要約すると、各コースには不明な数の目的があります - 通常は 10 ~ 20 です。それらが不明である理由は、それらが教員によってアプリケーションに入力され、数量がコースの特定の要件に依存するためです。
目標 (行) ごとに、11 個の結果列が既に存在します。
新しい KSA アスペクトには以下が含まれます。
...... a variable number of identifiers for "Knowledge" that relates to outcome 1.
and... a variable number of identifiers for "Knowledge" that relates to outcome 2.
and so on...thru outcome 11
and... a variable number of identifiers for "Skills" that relates to outcome 1...
and... a variable number of identifiers for "Skills" that relates to outcome 2...
and so on...thru outcome 11
and... the same for "Attitudes"
and so on...thru outcome 11
11 の結果ごとに個別の列が提供されている表を継承しました。この側面を維持し、KSA の追加により詳細を追加します。ただし、KSA の追加に伴い、データ構造を追加するための最善の方法について疑問に思っています。KSA ごとに個別の列を用意すると、約 140 の新しい列ができてしまい、データを保持するためのより良い方法があるはずです。さらに、多くの KSA 列に NULL が含まれる可能性があります。
また、すべての KSA データを区切り文字列として 1 つの列に含めることを考えていましたが、ユーザーが検索を実行すると、かなりの数の操作を実行する必要があるという点で、パフォーマンスの問題があるように見えました。毎回文字列に。
KSA のデータの例を「アウトライン」形式で示します。これは、KSA 記述子を使用して、各結果がどのように詳細に分割されるかを示しています。
Outcome: Calculations-The graduate will be able to perform calculations accurately.
Knowledge:
1. specific calculations
2. specific factors that influence calculations.
Skills:
1. employing consistently accurate mathematical ability in all calculations.
2. applying principles of calculations and specific factors to determine the appropriate use of therapy.
3. completing calculations needed to prepare specific results.
Attitudes:
1. stating the importance of accurate calculations.
2. recognizing the impact of calculation errors on response and risk
KSA 要素を追加する最良の方法は何ですか? 各結果のデータが複数の記述子に分割される方法のため、別のテーブルを使用することを考えていましたが、論理的にそれを行う方法がわかりませんでした.
助けてくれてありがとう。