質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

1624閲覧

データベース設計に関して質問です。

退会済みユーザー

退会済みユーザー

総合スコア0

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2015/08/30 17:39

Ruby on Railsにて質問サイトの構築をしていますが、テーブル構造がまとまらずアドバイスをお願いしたいです。

試験問題を選択し、その問題に対する質問を行うという機能にしたいと考えておりまして、
試験問題関係のテーブルの持ち方のアドバイスをいただけましたら幸いです。

イメージ説明

以下、現状考えているテーブル構造です。

・試験テーブル
ID:0001
試験区分:基本情報技術者
試験日 :平成27年春
試験時間:午前1

・試験問題テーブル
ID:00001
試験テーブルID(外部キー):0002
設問No:001
設問 :コンパイラにおける最適化の説明として,適切なものはどれか。
正解 :選択肢3
選択肢1:ア.オブジェクトコードを生成する代わりに,インタプリタ用の中間コードを生成する。
選択肢2:イ.コンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。


選択肢5:

・質問テーブル
ID
質問ユーザーID(外部キー)
試験問題ID(外部キー)
質問内容

恐れ入りますが、何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

RoRなので、IDを持ちたいという気持ちはよくわかります。
多分量も多く無いと思うのでIDを使っても良いと思います。(数千万単位になるならIDは考え直す必要がありますが)

基本情報、応用情報の試験数はそんなに増えないと思うのですが、
年度はどこまで表示し、公開するのでしょうか。
毎年2件ずつ増えるのであれば、年度と春秋は項目として分けた方が良いかなとも思います。

試験マスタ
試験ID(PK) 基本情報、応用情報…
年度区分(PK) 平成27年、平成28年
春秋区分(PK) 春、秋
時間区分(PK) 午前、午後

試験問題マスタ
試験ID(FK)(PK)
年度区分(FK)(PK)
春秋区分(FK)(PK)
時間区分(FK)(PK)
試験問題ID(PK)
正解
設問
選択肢1
選択肢2
選択肢3
選択肢4
選択肢5

質問テーブル
試験ID(FK)(PK)
年度区分(FK)(PK)
春秋区分(FK)(PK)
時間区分(FK)(PK)
試験問題ID(PK)
質問ユーザID(FK)(PK)
質問内容

select * from 試験マスタ
where 試験ID = ?
and 年度区分 = ?
and 春秋区分 = ?
and 時間区分 = ?

おそらく、IDを使う方針は避けられないと思うので、上記でPKとした部分はユニーク&インデックスを貼っておくと良いでしょう。

問1まで選択すると、と有りましたが、
問1のボックスは試験マスタを全て選択しないと作成できない(問題数がわからない)
ので、試験マスタを先に検索し、
その後、試験問題マスタから試験問題IDを取得してリストを作成するのではないかと思います。

投稿2015/08/30 22:58

anonymouskawa

総合スコア856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/31 03:15

anonymouskawa様 ご回答いただきましてありがとうございます。 大変参考になりました。 いただきました内容を基に設計進めてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問