ストーリーライン、キャラクター、レベリングなどの確立と持続を中心としたゲームSDKを開発しています。
私はさまざまなクラスのマインドマップから始め、現在、これらの単純な表現を UML に取り込んでいます。ゲームのオブジェクトの永続化は SQLite を使用して行われるため、クラスをデータベース レコード タイプとして表しています。これらのレコード タイプの 1 つである RangedProperty は、Factions、Traits、Statuses などの複数のテーブルで使用されます。
CREATE TABLE [RangedProperty] (
[UID] INTEGER NOT NULL ON CONFLICT FAIL,
[OID] INTEGER NOT NULL,
[Name] TEXT,
[Description] TEXT,
[Tag] TEXT,
[Min] INTEGER DEFAULT 1,
[Max] INTEGER DEFAULT 100,
[Current] INTEGER DEFAULT 50);
テーブルはすべて同じレコード タイプを使用しているため、Tag フィールドをそのままにして、派閥や特性などに個別のテーブルを使用するのではなく、それらすべてに同じテーブルを使用することは理にかなっていますか? レコードタイプの変更は1つのテーブルに対してのみ行う必要があるため、エラーの可能性が減少するため、信頼性に貢献するようです。
ありがとう!
注: フィールド タイプに INTEGER を使用することを考えました。比較が高速になるためです。ただし、Tag フィールドが使用されていない場合は問題になると考えてください。