0

一般的に、一次データの種類に基づいて二次データをどのように保存するのか疑問に思っています。

これが現実世界の状況です。データベースに「学生」を追加するときに、紹介を開始したいと考えています。これは、ドロップダウン ボックスに表示されるオプションのリストを格納する「referrer」というテーブルを参照することによって行われます。

+-------------+---------------+
| referrer_id | referrer      |
+-------------+---------------+
|           1 |       Student |
|           2 | Search Engine |
|           3 |            Ad |
+-------------+---------------+

そのため、生徒のテーブルに referrer_id を格納します。簡単です。

選択に基づいて、ユーザーが二次情報を入力できるようにしたいと考えています。たとえば、リストから「学生」を選択すると、2 つ目のドロップダウン ボックスが表示され、既存の学生のリストが表示されるので、どの学生が紹介者であるかを指定できます。student_id を保存する必要があります。「検索エンジン」を選択した場合は、検索エンジンの名前を入力できるテキスト ボックスを提示し、そのテキストを保存します。

だから私の質問は、この情報を保持するために「学生」テーブルをどのように構成する必要があるかということです。私の最初の考えは、さまざまな可能性を保持するために、学生テーブルに追加の列を作成することでしたが、それは面倒でスケーラブルではないように見えるので、気にしません。ここで、student_id、referrer_id、そして値 (参照する student_id やテキスト ボックスに入力された値など) を保持する追加の相互参照テーブルが保証されるかどうか疑問に思っています。または、「値」の代わりに、「value_id」、「value_text」などをさまざまなデータ型の可能性に使用することもできます。このテーブルの referrer_id の値は、どの列に必要なデータが含まれているかを示します。

4

1 に答える 1

-1

おそらく、参照元テーブルには、特定の参照元のパラメーターを示す追加のパラメーター列があります (学生の場合、parameter_1 列は学生名である可能性があります)。次に、学生テーブルに追加するときにこれらのパラメーターをシリアル化するときに、単純な配列結合を使用して型とそのパラメーターをシリアル化できます。(つまり、学生と学生 John Doe を選択した場合、この学生のリファラーは 1|John Doe| になる可能性があります)。

于 2013-06-29T00:02:26.870 に答える