Shedinja開発記 Part2
前回はShedinjaの基本的な、計算アルゴリズムを組みました。正直ここまでは余裕のよっちゃん。
さて今回はDB(データベース)の構築をやっていきます。
仕事は他人にさせる。※大事
ポケモンSMに登場するポケモン数は延べ918であり、これを手作業で裁くのには少々(というか完全に)無理があります。
なのでできることなら既存のDBを転用するのが不本意なミスを防ぐという観点でも有効です。
(私が知っている範囲では)多くのゲームWikiはDBを組まず、HTMLにデータ値をべた張りしています。DB組むよりもこの方が最初に作るときは楽なのですが、変更があった際には関連ページをすべて更新する必要があるので面倒です。幸いポケモン攻略Wikiは乱立状態だったので検索トップにDBが存在しなくても他のWikiを当たればよさそう。有効なデータシートを持ってるWikiがあるといいですね…
閑話休題:データベースとは?
ここでExcelに代表されるスプレッドシートとデータベースの違いを明らかにしておきます。
スプレッドシートとデータベースの違いを一言で言い表すならば、スプレッドシートには構造があるという点です。
まずスプレッドシートというのは、何でもアリのただのセル群。どこにどんな値を入れようが、同じ値が繰り返されようが、途中に空白セルがあろうが、Excel方眼紙にしようが、極端な話はいいわけです。
一方のデータベースというのはもっと厳格で、データ(数値)を格納するという点ではスプレッドシートとあまり変わりませんが、同じ意味を持つ値は繰り返されてはいけませんし、基本的に空白があってもダメ。 例えば「名前」列があったとしたら、そこには名前以外のデータが入ってはいけません。方眼紙なんて論外です。(Excel方眼紙も本来的には論外ですが)
必要最小限だけど、不足のないようにデータを整然と並べなければならないDBは、構築の前にCSD(Conceptual Schema Diagram, 概念構造図とでもいうのでしょうか)などの図を描いてデータ同士の関係を整理するなど工夫が必要です
ネットの先人を頼る。
しばらく探していると、意外にもあっさりとお目当てのDBが見つかりました。まあDBというか、実際はスプレッドシートなんですが…
自分好みにカスタマイズ。
必要なものは見つかったといえ、これをそのままDBにするわけにはいきません。
名前が長いポケモンに改行が入っていたりするからです。
この修正をDB作成ソフト(Microsoft Access)でやるのは少し面倒なので、邪道ですがExcelで体裁を整えてからAccessにコピペします。
コピペは大事。
改行の処理が終わったら、いよいよこのデータをAccessのほうに張り付けてDBにしていきます。スプレッドシートとデータベースの違いを肝に銘じながらの作業。
さて、データベースができました。ここまで来てしまえばあとは煮るなり焼くなり。実際DBを作ることよりもうまく運用することの方が重要で、かつ非常に複雑な問題でもあるのですが… ひとまず材料が完成しました。
次回予告
次回は出来上がったDBをVisual Studioに取り込んで、Shedinja内から操作できるようにします。
これがまた大変ですよ…