EVE Onlineのデータベースについての雑感
長くなったので、結果だけ見たい人用に記事の最初にアウトプットを置いておく。
DBの中身を適当に言語別に並べてみた。次はスクリプトの動かし方を簡単に説明。
ソースコードを落としてきて適当な場所で解凍。Python 3.x系。
Resources - EVE: Developers ここからSDEを落としてきて解凍、fsdの方のフォルダをソースコードの位置に移す。コマンドプロンプトを開いて
python Evepedia.py --import
これで同じフォルダにeveonline.sqliteというファイルが出来てたら成功。
python Evepedia.py
今度は--import無しで実行、docsというフォルダにhtmlファイルが大量に出来てたら成功。これが上記のサイトになる。何か足りないとかエラーが出たら"python pip"とかでググってライブラリを入れてください。後は焼くなり煮るなり勝手にどうぞ。
以下はチラシの裏。何をやってるか興味がある人は読んでどうぞ。
前回に引き続きEVE Onlineのデータベースについて調べてみたので、今の段階での理解を整理する意味でもメモがてらに書いてみる。
EVE Onlineのデータベースは公式が配布している。bsdという形式とfsdという形式がある。bsdというのは昔から使われていた方だと思う。fsdはbsdを綺麗に今風にまとめた感じという理解。以下はbsdについての話。
昔はMicosoft SQL Serverに直接読み込める形のdumpファイルを公開してたらしいが、今は公式からはYAMLファイルだけなので有志によってdumpファイルが公開されている。Steveというカプセラがやってるらしい。
DBとか分からないという人は最新の"*.sqlite.bz2"を落とす。DB Browser for SQLite ←こういう適当なDBブラウザを使うと中身が見れる。
上記のサイトが閉鎖したらどうするの?という時にはDesmontの出番。ソースコードを公開しているのでこちらを使おう。まぁSteveのfuzzworkは2013年以前からある由緒正しいサイトなので潰れないはず(フラグ)
bsdについては4年前のカラドリの人の記事を見るとよいかも。SQL Server 2014は色々のバージョンがあるので、よく分からなかったらJPN\x86\SQLEXPRADV_x86_JPN.exeってのをダウンロードすれば間違いないはず。bsdについての話題はこんぐらい。
それでは今までのことは全部忘れましょう!bsdは使いません!
この糞bsdは糞過ぎて頭がおかしくなるのでfsdの方を使いましょう。少しデータが足りないかもしれませんが、とてもすっきりして美しいです。寿命も縮まりません。
まずはfsdのDB構成について。テーブルは大まかに3つに分かれている。
categoryIDs
カテゴリ一覧が入っている。データベースの大元。例えばid=6はShip、つまり船のデータは全てcategory idが6になる。
groupIDs
グループ一覧が入っている。カテゴリーをさらに細分化したもの。id=25はFrigate、つまり全てのフリゲートはcategory idが6でgroup idは25になる。
typeIDs
タイプ一覧が入っている。グループをさらにさらに細分化したもの。id=593はTristan、つまりトリスタンはカテゴリーがShip、グループはFrigateのType IDが593のデータということになる。
基本的にこの3つで大体のデータは取れる。typeIDsの中には別のIDもあるので、そちらも少し説明。
raceID
種族のID. 使うのは大体1(Caldari), 2(Minmatar), 4(Amarr), 8(Gallente)
factionID
勢力のID. 海賊勢力とか色々あるので割と沢山ある。どのIDが何なのかは自分で調べてください(まだ全部は僕も調べてません)
今のところこんな感じです。