【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

私はデータベースを本で勉強していたのですが物にするため、実際にデータベースのプログラムをくんでみようと設計を考えたのですが、疑問があります。
私はデータベースに、プログラム上で取り扱っているサイズがことなる複数の配列内のデータを格納したいのですが、これはデータベースにどのように格納すればよいのか分からず困っています。
図で説明すると
例えば
{1}
{12 33 24 21}
{13 56 0 1}
という3つの配列を同じデータベースに入れようとした場合
ID int1 int2 int3 int4
1 1 null null null
2 12 33 24 21
3 13 56 0 1
という形で入れる事になると思いますが、ここにサイズが5の配列をいれようとした場合は列が増えることになってしまいます。すると色々めんどくさいことになるのではないかと思います。

このようなデータベースに入れるデータのサイズが分からない場合は、どのようにするべきなのでしょうか?(なおJDBCを使い、SQLiteに入れています)
やや抽象的かつ、意味がわかりにくい質問ですが不足な点は説明させていただきますので、ご回答よろしくお願いします。

A 回答 (2件)

データベースは、規則性をもったデータを格納し、またあとでデータを取り出して利用することが目的です。



なので、ご質問の配列に、どういう規則性があるのか または、 それを後で、どのように利用することを考えているのか
がないと、意味がないように感じます。
単に、サイズが異なる配列を収めるということなら、
id data
1 1
2 12 33 24 21
3 13 56 0 1
としても良いように思えます。dataの部分は、区切り文字をスペースなりカンマにするなりして、後でデータを取り出して
プログラム側で分割もありではないでしょうか?

データベースを学んでいるとあるのですが、正規化という考えからすると、ID int1 int2 int3 int4 という考えはないと思います。
    • good
    • 1
この回答へのお礼

なるほど、正規化ですか。お恥ずかしながら発想にありませんでした。
参考になりました。ありがとうございます。

お礼日時:2011/03/03 14:33

int1~int4に順序が必要でなければ



ID int
1 1
2 12
2 33
2 24
2 21
3 13
3 56
3 0
3 1
・・・
みたいなデータの持ち方をすればいいでしょう。

順序が必要でしたら一列たして

ID rank int
1 1 1
2 1 12
2 2 33
2 3 24
2 4 21
3 1 13
3 2 56
3 3 0
3 4 1
・・・

みたいな形でいけばよいでしょう
    • good
    • 0
この回答へのお礼

なるほど、列を増やすのではなく行をふやすという考えた方ですね。
ありがとうございます。参考になりました。

お礼日時:2011/03/03 14:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報