12/12/09 18:09:22.33
名前と属性を管理するデータベースを作りたいと思っててます。
例えば、
Aさんは「水泳」属性、「走行」属性を持ちます。
Bさんは「水泳」属性、「暗視」属性を持ちます。
この場合、
Name | Attribution
A | 水泳
A | 走行
B | 水泳
B | 暗視
のように登録するのは効率が悪いと思うのです。
何か効率のいいデータベースの構成はないでしょうか?
21:デフォルトの名無しさん
12/12/09 18:18:05.63
>>20
属性の種類に限りがあるかどうかで変わる
22:デフォルトの名無しさん
12/12/09 18:19:49.85
table1(table1ID,name)
table2(table2ID,Attribution )
table3(table1ID,table2ID)
テーブル名と主キー名は適当なんで
好きな名前におきかえてね
23:デフォルトの名無しさん
12/12/09 18:20:44.24
データベース板っていうのがあるんだけど・・・。
とりあえずこの情報だけじゃ判断しかねるわ
24:デフォルトの名無しさん
12/12/09 18:32:41.22
>>21
限りはあります
>>22
何のコードですか?
MySQLでしょうか?
>>23
何が足りないでしょうか。
25:デフォルトの名無しさん
12/12/09 18:43:34.70
>>24
データの種類の数
一人当たりの属性の数
26:デフォルトの名無しさん
12/12/09 18:45:21.06
たとえば、属性の数が数種類くらいなら、ビットを使って所属属性を設定する手もある。
こういう事をすると検索のスピードとかにも影響があるかもしれないし、
その場合の検索スピードは「名前」の数との兼ね合いもあるかもしれない。
0x01 : 水泳
0x02 : 走行
0x04 : 暗視
Name | Attribution
A | 0x03
B | 0x05
27:デフォルトの名無しさん
12/12/09 18:49:39.52
Name|A*(水泳?1:0)+(A-1)*(走行?1:0)…1*(暗視?1:0)
28:22
12/12/09 19:02:55.23
>>24
コードじゃなくてテーブルの構成ね
テーブル名(列名1,列名1,・・・・列名n)