Open11

Unityアセット「SimpleSQL」の味見中

negitamanegitama

Select文のテスト

// 指定したIDのキャラクター情報を取得する
private void ShowMCharactersById(params int[] mCharacterIds)
{
    var mCharacters = dbManager.Table<MCharacters>().Where(_ => mCharacterIds.Contains(_.Id));

    foreach (var mCharacter in mCharacters)
    {
        Debug.Log($"ID: {mCharacter.Id} Name: {mCharacter.CharacterName} ");
    }
}
negitamanegitama

テーブルデータ定義

public class MCharacters 
{
    [PrimaryKey] public int Id { get; set; }
    [NotNull] public string CharacterName { get; set; }
    [NotNull] public string WeaponType { get; set; }
    [NotNull] public int Hp { get; set; }
    [NotNull] public int Sp { get; set; }
    [NotNull] public int Atk { get; set; }
    [NotNull] public int Def { get; set; }
    [NotNull] public int Dex { get; set; }
    [NotNull] public int Agi { get; set; }
    [NotNull] public int Luk { get; set; }
}
negitamanegitama

マスターデータテーブルの作成、レコードの登録は「DB Browser for SQLite」でやっちゃうのがよさそう

参考記事
SQLiteのGUI管理ツールといえば?DB Browser for SQLite がオススメ! | ITエンジニアラボ https://it-engineer-lab.com/archives/278

negitamanegitama

CSVでデータインポートする@DB Browser for SQLite

参考記事
テーブルのデータをCSV形式でエクスポート/インポート - DB Browser for SQLiteの使い方 https://www.dbonline.jp/sqlite-db-browser/export/index2.html

なおCSV形式のファイルにはデータ型などの指定ができませんので作成されたテーブルの各カラムのデータ型は全て「TEXT」に設定されています。データ型の変更や制約の設定などを必要に応じて行って下さい

既存のテーブル(データ型指定済み)に上書きインポートすればおk

negitamanegitama

マスターとなるテーブルのデータはGoogleスプレッドシートで作って、CSV出力
→ DB Browser for Liteで取り込む
ってのがラクチンっぽい

※ExcelだとUTF-8で保存されないので、スプレッドシートのほうがよさそう

negitamanegitama

Done: マスターデータの作成、DBへの登録、DBからの読み込み

ToDo: 動的データの作成、DBへの保存

negitamanegitama

【重要】
マスター系のテーブルを更新するときは、SimpleSQL Manager の Overwrite if Exists にチェックを入れる必要があるっぽい。下図参照。
・マスターテーブルのレコードを追加・更新・削除したとき
・マスターテーブルの定義を更新したとき(カラム名を修正したときとか)