为浏览器游戏建模数据库

时间:2011-05-05 08:15:43

标签: php mysql symfony1 database-design

我正在研究用symfony为学校项目开发的浏览器游戏。

在我的架构中,我有一个表格播放器和一个表格清单(包含不同的项目),并且一对一关系。

我不确定如何构建表库存。在反思之后,我找到了两种方法:

1

TABLE inventory
  id
  id_player
  item1
  item2
  item3
  ...

但如果我想在游戏中添加一个项目,我必须在我的表格中添加一个列,如果有很多项目,我会有很多列。

2

TABLE inventory
  id
  id_player
  item
  quantity

我认为这种方式更好,但记录数量会迅速增加,因为我逐个玩具一行。

还有其他更有效的方法吗?如果不是,那两者中哪个更好?

2 个答案:

答案 0 :(得分:6)

第二种方法应该没问题,只要id_player上有索引即可。我不担心它的空间使用情况。如果每行占用25个字节,并且每个玩家有400种类型的项目,并且你有100万用户,那仍然只有10个演出。

答案 1 :(得分:4)

要完成上述答案,您可以添加包含商品的表格,然后只需将商品列更改为 id_item

TABLE player     
  id
  player_name
  ... player characteristics ...

TABLE inventory
  id
  id_player
  id_item
  quantity

TABLE item
  id
  item_name
  ... item characteristics ...