コンテキスト: postgres を使用した、個人学習用の単純な webapp ゲーム。好きなようにデザインできます。
2 つのテーブル 1 つのビュー (重要ではない追加のテーブル ビュー参照があります)
Table: Research
col: research_id (foreign key to an outside table)
col: category (integer foreign key to category table)
col: percent (integer)
constraint (unique combination of the three columns)
Table: Category
col: category_id (primary key auto inc)
col: name(varchar(255))
注: この表は、ビジネス ロジックで必要な 4 つの調査カテゴリをキャプチャするために存在し、データベースの列としてハードコードするのはベスト プラクティスではないと思います
View: Research_view
col: research_id (from research table)
col: foo1 (one of the categories from category table)
col: foo2 (etc...)
col: other cols from other joins
注:上記のテーブルを適切に使用する挿入/更新/削除ステートメントがあります
私が心配している研究テーブル自体は、「スキニーテーブル」としての資格があります (Ibatis のマニュアルで見るまで、この用語を聞いたことがありませんでした)。たとえば、その中のテストデータは次のようになります。
| research_id | percent | category |
| 1 | 25 | 1 |
| 1 | 25 | 2 |
| 1 | 25 | 3 |
| 1 | 25 | 4 |
| 2 | 20 | 1 |
| 2 | 30 | 2 |
| 2 | 25 | 3 |
| 2 | 25 | 4 |
1) テーブル内のすべての列で一意のエントリをまとめて定義することは理にかなっていますか?
2) これはあなたに「におい」がありますか?