MySQLのこと
MySQLを使ってみたところ中々快適に動作してるようです。
自宅の貧弱なサーバー環境でもサクサク動作してくれます。
サーバー環境
TOSHIBA Dynabook Satellite
CPU Pentium3-833MHz
メモリ 256MB
HDD 20GB
さて、このMySQLですが今日は仕様の問題で大はまりしました。
SQLをカタカタ書いてクエリを送ってみたものの結果がNULL・・・
間違ってるのかなーっと構文をチェックすること3時間。
やっぱり間違っていそうな所はありません。
ぐぐってみたところ理由がわかりました。
MySQLは「SELECT文で副問い合わせはできない」
だそうです。
とほほ・・・仕方ない自分でループ回すことにします;
自宅の貧弱なサーバー環境でもサクサク動作してくれます。
サーバー環境
TOSHIBA Dynabook Satellite
CPU Pentium3-833MHz
メモリ 256MB
HDD 20GB
さて、このMySQLですが今日は仕様の問題で大はまりしました。
SQLをカタカタ書いてクエリを送ってみたものの結果がNULL・・・
間違ってるのかなーっと構文をチェックすること3時間。
やっぱり間違っていそうな所はありません。
ぐぐってみたところ理由がわかりました。
MySQLは「SELECT文で副問い合わせはできない」
だそうです。
とほほ・・・仕方ない自分でループ回すことにします;
データ作成
アイテムデータの作成に「ふぉ」を半日掛けてカスタマイズ。(済)
レシピデータの作成に「Moogle for Windows」のカスタマイズ。(未)
納品データの作成は手動で入力。(未)
Moogleの時と同じでデータ関係に振り回されそうですね。
今日はレシピデータ作りで1日終わりそうな予感です。
レシピデータの作成に「Moogle for Windows」のカスタマイズ。(未)
納品データの作成は手動で入力。(未)
Moogleの時と同じでデータ関係に振り回されそうですね。
今日はレシピデータ作りで1日終わりそうな予感です。
アイテムの検索
納品クエのスクリプト作成中に気づいたんですが
IDからアイテム名を取得してこないと作れません(汗
ってことで先にデータベースの設計をしてみました。
アイテムデータ
新規→ふぉを改良したデータからCSV出力→MySQLにインポート
保守→バージョンアップごとに登録しなおし
レシピデータ
新規→Moogle for Windowsを改良したデータからCSV出力→MySQLにインポート
保守→ユーザーさんにフォームから登録して貰って管理権限の人が認証
納品クエデータ
新規→情報サイトからCSV形式でコピペor自分で入力→MySQLにインポート
確定方法→ffrecipeさんと同じ絞込みにします
とりあえずはこんな感じで行こうかと思います。
IDからアイテム名を取得してこないと作れません(汗
ってことで先にデータベースの設計をしてみました。
アイテムデータ
新規→ふぉを改良したデータからCSV出力→MySQLにインポート
保守→バージョンアップごとに登録しなおし
レシピデータ
新規→Moogle for Windowsを改良したデータからCSV出力→MySQLにインポート
保守→ユーザーさんにフォームから登録して貰って管理権限の人が認証
納品クエデータ
新規→情報サイトからCSV形式でコピペor自分で入力→MySQLにインポート
確定方法→ffrecipeさんと同じ絞込みにします
とりあえずはこんな感じで行こうかと思います。
Moogleデータ仕様
では現在公開中のデータベースの仕様について考えてみましょう。
閉鎖されたサイトMoogle(以降旧Moogle)が公開した際、
2年くらい前でしょうか。。。にまとめた私のメモは↓です。
データ仕様については開発当時(2年くらい前?)に自分で書いたメモがありましたので貼り付けときます。
1.レコード項目
アイテムデータは1行を1レコードとし、 「,」を区切り文字として使用するCSV形式。
1レコードに対応する項目の名称。
0 アイテム番号
1 アイテム名[半角スペース]個数
2-9 合成材料
10 クリスタル番号
11-20 生産スキルフラグ
21-30 必要スキル値
31-40 限界スキル値
41 ハイクォリティアイテム
42 ギルド番号
43 レシピランク
44 アイテム説明
45 EXフラグ
46 Rareフラグ
47 スタック情報
48 分解アイテム[スペース]個数
2.データ項目の詳細
1)アイテム番号
アイテムを識別する一意のキー番号。半角数字、省略不可。
2)アイテム名[半角スペース]個数
合成で作成されるアイテム名称及び作成時に完成するアイテムの個数。
アイテム名・・・文字及び記号、省略は不可。
個数・・・半角数字、省略可能。デフォルト値は1。
3)合成材料
合成に使用する材料の名称。
文字、省略可。デフォルト値は空白。
4)クリスタル番号
合成に使用するクリスタルの番号。
半角数字、省略可。デフォルト値は9。
crystal(0:指定無し 1:炎 2:水 3:土 4:風 5:雷 6:氷 7:光 8闇 9-)
5)生産スキルフラグ
合成に必要となる生産スキル
省略可能でデフォルト値は0。
0:不要 1:必要。
skill(0:指定無し 1:鍛冶 2:裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理)
6)必要スキル値
合成に必要なスキル値。順番は配列skillに対応。
3バイトまでの半角数字及び空白。デフォルト値は空白。
skill(0:指定無し 1:鍛冶 2:裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理)
7)限界スキル値
合成であがるスキルの限界値。順番は配列skillに対応。
3バイトまでの半角数字及び空白。デフォルト値は空白。
skill(0:指定無し 1:鍛冶 2:裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理)
8)ハイクォリティアイテム
合成で完成するハイクォリティのアイテム名。<>を区切り文字にしてHQ1<>HQ2<>HQ3とする。
各HQデータは256バイトまでの文字とし、省略可能。デフォルト値は空白。
全データは772バイトまでの文字とし、省略可能。デフォルト値は空白。
9)ギルド番号
レシピが聞けるギルドの番号。
省略可能。デフォルト値は0。
skill(0:指定無し 1:鍛冶 2裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理 null:レシピなし)
10)レシピランク
レシピが聞けるランク。
rank(0:指定無し 1:素人 2:見習い 3:徒弟 4:下級職人 5:名取 6:目録 7:印可・・・ 99:隠し)
11)アイテム説明
アイテムに関する説明。改行文字は
を使用する。
12)Exフラグ
アイテムのEXステータスフラグ。
数字、省略可能。デフォルト値は0。
0:属性なし 1:属性あり
13)Rareフラグ
アイテムのRareステータスフラグ。
数字、省略可能。デフォルト値は0。
0:属性なし 1:属性あり
14)スタック情報
アイテムがスタック可能かどうか。
数字、省略可能。デフォルト値は0。
0:不可 1:可能
15)分解アイテム[スペース]個数
アイテムを分解した際に得られるアイテム名及び個数。
アイテム名・・・省略可。デフォルト値は空白。
個数・・・半角数字、省略可能。デフォルト値は1。
このデータベース形式の利点は
・検索速度が速い
・単純な形式なのでデバッグがし易い(ソフトが作り易い)
・閉鎖時に公開されたデータフォーマットで他サイトと互換性がある(あった)。
とこんな感じです。少し古いメモなので多少間違いがあるかも知れませんが それほど変化も無く仕様通り動作しているのでは無いでしょうか。
今の所特に問題も無いですし今後もこのDB形式で継続していくつもりです。
今後の課題はデータの保守ですね。
もう少し私の手間が掛からない方法を考えないと・・・
閉鎖されたサイトMoogle(以降旧Moogle)が公開した際、
2年くらい前でしょうか。。。にまとめた私のメモは↓です。
データ仕様については開発当時(2年くらい前?)に自分で書いたメモがありましたので貼り付けときます。
1.レコード項目
アイテムデータは1行を1レコードとし、 「,」を区切り文字として使用するCSV形式。
1レコードに対応する項目の名称。
0 アイテム番号
1 アイテム名[半角スペース]個数
2-9 合成材料
10 クリスタル番号
11-20 生産スキルフラグ
21-30 必要スキル値
31-40 限界スキル値
41 ハイクォリティアイテム
42 ギルド番号
43 レシピランク
44 アイテム説明
45 EXフラグ
46 Rareフラグ
47 スタック情報
48 分解アイテム[スペース]個数
2.データ項目の詳細
1)アイテム番号
アイテムを識別する一意のキー番号。半角数字、省略不可。
2)アイテム名[半角スペース]個数
合成で作成されるアイテム名称及び作成時に完成するアイテムの個数。
アイテム名・・・文字及び記号、省略は不可。
個数・・・半角数字、省略可能。デフォルト値は1。
3)合成材料
合成に使用する材料の名称。
文字、省略可。デフォルト値は空白。
4)クリスタル番号
合成に使用するクリスタルの番号。
半角数字、省略可。デフォルト値は9。
crystal(0:指定無し 1:炎 2:水 3:土 4:風 5:雷 6:氷 7:光 8闇 9-)
5)生産スキルフラグ
合成に必要となる生産スキル
省略可能でデフォルト値は0。
0:不要 1:必要。
skill(0:指定無し 1:鍛冶 2:裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理)
6)必要スキル値
合成に必要なスキル値。順番は配列skillに対応。
3バイトまでの半角数字及び空白。デフォルト値は空白。
skill(0:指定無し 1:鍛冶 2:裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理)
7)限界スキル値
合成であがるスキルの限界値。順番は配列skillに対応。
3バイトまでの半角数字及び空白。デフォルト値は空白。
skill(0:指定無し 1:鍛冶 2:裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理)
8)ハイクォリティアイテム
合成で完成するハイクォリティのアイテム名。<>を区切り文字にしてHQ1<>HQ2<>HQ3とする。
各HQデータは256バイトまでの文字とし、省略可能。デフォルト値は空白。
全データは772バイトまでの文字とし、省略可能。デフォルト値は空白。
9)ギルド番号
レシピが聞けるギルドの番号。
省略可能。デフォルト値は0。
skill(0:指定無し 1:鍛冶 2裁縫 3:錬金術 4:木工 5:彫金 6:革細工 7:骨細工 8:釣り 9:調理 null:レシピなし)
10)レシピランク
レシピが聞けるランク。
rank(0:指定無し 1:素人 2:見習い 3:徒弟 4:下級職人 5:名取 6:目録 7:印可・・・ 99:隠し)
11)アイテム説明
アイテムに関する説明。改行文字は
を使用する。
12)Exフラグ
アイテムのEXステータスフラグ。
数字、省略可能。デフォルト値は0。
0:属性なし 1:属性あり
13)Rareフラグ
アイテムのRareステータスフラグ。
数字、省略可能。デフォルト値は0。
0:属性なし 1:属性あり
14)スタック情報
アイテムがスタック可能かどうか。
数字、省略可能。デフォルト値は0。
0:不可 1:可能
15)分解アイテム[スペース]個数
アイテムを分解した際に得られるアイテム名及び個数。
アイテム名・・・省略可。デフォルト値は空白。
個数・・・半角数字、省略可能。デフォルト値は1。
このデータベース形式の利点は
・検索速度が速い
・単純な形式なのでデバッグがし易い(ソフトが作り易い)
・閉鎖時に公開されたデータフォーマットで他サイトと互換性がある(あった)。
とこんな感じです。少し古いメモなので多少間違いがあるかも知れませんが それほど変化も無く仕様通り動作しているのでは無いでしょうか。
今の所特に問題も無いですし今後もこのDB形式で継続していくつもりです。
今後の課題はデータの保守ですね。
もう少し私の手間が掛からない方法を考えないと・・・

