データベースのお勉強2

昨日のやつちょろちょろ反応貰って嬉しい限りです。

紹介されたやつぴよぴよ読んでたら、三つ目のやつがそのものですね。「どっかにこんな感じの車輪ない?」って気持ちで書いてたので一安心です。
タグ機能」とあるように、ブックマークとタグと言う流動性の高いデータを扱う場合なので、装備可否みたいな静的なデータを扱うなら最初に書いた装備テーブルに可否を持ってしまうのが良いような気がしてきました。(もう一人反応してくれた人もこちら推し)

それにしても一つ目のやつは目から鱗ですね。その発想はなかったです。無駄な綺麗さは投げ捨てていけ。


ということで引き続き。
発端としては索敵値計算を自動化してやろうってのがあるので、それ用の列をぶっこんでいきます。

テーブル名:装備
{ID、名前、索敵値、索敵計算種、
戦艦装備可、
高速戦艦装備可、
航空戦艦装備可、
重巡洋艦装備可、
航空巡洋艦装備可、
重雷装巡洋艦装備可、
軽巡洋艦装備可、
駆逐艦装備可、
正規空母装備可、
軽空母装備可、
水上機母艦装備可、
潜水艦装備可、
潜水空母装備可、
工作艦装備可、
揚陸艦装備可、
潜水母艦装備可}

テーブル名:艦種
{ID、名前}

テーブル名:索敵計算種
{ID、係数}

テーブル名:艦娘
{ID、名前、艦種ID、スロット数}

こう並べてみると、装備可能リストを生成するのが厄介に見えてくるけど、艦種なんてそうそう追加されないし、良いってことだよな。
艦種からどの装備可を取って来るかで思いつくのはこんなところ。
1.SELECTCASEでごりごり。
2.艦種IDで艦種の名前引っ張ってきて、そこから列名を生成。
3.艦種IDと装備可の列名の対応を持つテーブルを作ってそこから引っ張って来る。

速度的にSELECTCASEでがりごりやった方が良さそうですね。それか2.のアプローチで艦種IDではなく艦種名を持つようにして、艦種テーブルのIDを廃止して名前を主キーにする。
うむ、SELECTCASEで愚直に行きましょう。