我最近了解了我的信息学课程中的规范化,并且我正在开发一个使用SQLite作为后端数据库的多人游戏.
有关它的一些信息:
简化的结构看起来有点像下面这样:
player_id | level | exp | money | inventory
---------------------------------------------------------
1 | 3 | 120 | 400 | {item a; item b; item c}
Run Code Online (Sandbox Code Playgroud)
好的.如您所见,我将以字符串形式将表/数组存储在"inventory"列中.这违反了规范化.
但问题是:为玩家的库存制作额外的桌子对我来说只是一个缺点!
当玩家加入时,我从数据库加载他的数据并将其存储在内存中.保存播放器时,我每隔五分钟就会写一次DB.所以我的脚本中实际上只有很少的SQL查询.
如果我在加载时使用了额外的表格,我将不得不:
保存时:
如果我将所有玩家数据保存在一个表中:
我现在应该怎么做?
我的论点和情况是否有理由反对正常化?