吉田@ECCコン専です。
ちょうど学生3チームが、Android-SQLite, VB.Net-MySQL,
VB.net-Accessで似たようなことをしているのでヒントをお伝えしましょう(卒業制作なので、こういった論理設計はとっくに済んでますががー)。
SQLiteのようなRDBと呼ばれるデータベースは階層構造を表す場合、データ同士の関連を用います。
テーブルそのものは1つの事象(=エンティティ:教室とか学生とか)に対して説明できるデータ(属性)を格納するようにします。
階層構造は、関連付けを示すテーブル(ここでは教室所属表)を用意する場合が多いです。
以下に、簡単な論理設計を示しますので、SQL文で実装するなどしながら勉強されてはどうでしょう。
わりと典型的な設計です(40人を教室が持つ入室可能な人数の属性としてみました)
ヒント(論理設計ぽい部分)のみ入れておきます。
=======以下ヒントです
[教室表]1 対 多[教室所属表]多 対 1[学生表]
教室表(主キー:教室ID)
教室ID,教室名,最大人数
1-1,1階第1教室,40
1-2,1階第2教室,40
主キー:教室IDは他の行(教室データ)とかぶらないようにする
学生表(主キー:学生ID)
学生ID, 学生名, 住所
201201,山田太郎,東京都○○
201202,山下次郎,東京都××
201203,山本三郎,東京都△△
主キー:学生IDは他の行(学生データ)とかぶらないようにする。学籍番号等を使うといいかも
教室所属表(主キー:教室ID,学生ID)
教室ID,学生ID
1-1,201201 …1階第1教室に山田太郎が所属
1-1,201203 …1階第1教室に山本三郎が所属
1-2,201202 …1階第2教室に山下次郎が所属
主キー:教室IDと学生IDの組み合わせは他の行とかぶらないようにする
外部キー
教室IDは教室表にあるものしか使わない(存在する教室のみ)
学生IDは学生表にある者しか使わない(存在する学生のみ)
=======以上ヒントでした
物理設計実装(SQL文)では3つの表はCREATE TABLE文で作成します。
3つの表のデータは各々INSERT文で追加していきます。
CREATE TABLEで表を作成する際に以下のキーワードで定義できますが、特に記述しなくても構いません(と言い切ってしまいます)。
主キーをPRIMARY KEY
外部キーをFOREIGN KEY
あと、AndroidのSQLiteは外部キーが実装されていません。
(確認するとAndroid 4.2で外部キーが有効になったようです。)
プロトタイプ作成時には外部キーを気にせず作るといいと思います。
目視で確認できるデータ数ならば、目で見て表に存在するデータのみ使うようにして開発をはじめます。。
以上、参考になるでしょうか。
RDBシステムについて全くの素人ですと、何を書いているのか分からないかもしれません。
そうでしたら逆にとっかかりにして、何とか形にしてみてください(^-^)
2012年12月2日 9:54 ssももんが <
ss.mo...@gmail.com>: