我正在开发一个游戏SDK,它以故事情节、角色、练级等的建立和持久化为中心。
我从不同类的思维导图开始,现在正在将这些简单的表示带入 UML。由于游戏对象的持久化将使用 SQLite 完成,因此我将类表示为数据库记录类型。其中一种记录类型 RangedProperty 用于多个表:Factions、Traits、Status 等。
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 字段保留在适当的位置是否有意义,并且 - 而不是为 Factions、Traits 等使用单独的表 - 只需为它们都使用同一个表?这似乎有助于提高可靠性,因为只需要对一张表进行记录类型的更改,从而减少出错的可能性。
谢谢!
注意:我曾考虑将 INTEGER 用于字段类型,因为它可以加快比较速度,但如果不使用 Tag 字段,请考虑这是一个没有实际意义的问题。