hatena
hatena
2020/06/28 (日) 17:17:29
いろいろ考えられますが、
一つの解決策としては下記のようなテーブル構成にするのが自由度か高いかな、と思います。
M_Category (カテゴリーマスター)
| K1 | K2 | Cat |
|---|---|---|
| 1 | 1 | A |
| 1 | 2 | B |
| 1 | 3 | C |
| 1 | 4 | D |
| 2 | 1 | E |
| 2 | 2 | F |
| 2 | 3 | G |
K1, K2 複合PK
M_Person (人物マスター)
| PID | Name | K1 | K2 |
|---|---|---|---|
| 1 | 山田さん | 1 | 1 |
| 2 | 加藤さん | 1 | 3 |
| 3 | 佐藤さん | 1 | 1 |
| 4 | 田中さん | 2 | 1 |
| 5 | 伊藤さん | 2 | 3 |
※F1、F2 は M_Category の外部キー
T_Question (質問テーブル)
| QID | K1 | Question |
|---|---|---|
| 1 | 1 | aaaa? |
| 2 | 2 | bbbb? |
※K1 は M_Category の外部キー
T_Choice (選択肢)
| QID | CID | Choice |
|---|---|---|
| 1 | 1 | あ |
| 1 | 2 | い |
| 1 | 3 | う |
| 2 | 1 | ア |
| 2 | 2 | イ |
| 2 | 3 | ウ |
| 2 | 4 | エ |
| 2 | 5 | オ |
CID, QID 複合PK
QID は T_Question の外部キー
T_Person_Choice (人物がどの選択肢を選択したか)
| PID | QID | CID |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 1 | 3 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 4 | 2 | 3 |
| 4 | 2 | 5 |
| 5 | 2 | 2 |
| 5 | 2 | 4 |
テーブル名とかは出された情報から推測で適当につけてますので、参考程度に。
これはあくまで一例ですので、別の方法もあるかと思います。
通報 ...