PHP& MySQL - 哪个变量类型最适合这个数组?

时间:2012-11-20 08:20:38

标签: php mysql sql arrays int

问题:标题为

项目:我的PHP黑手党/流氓策略游戏

提出要求的原因:我不确定如何将这个问题写入有点相关的Google搜索中。

我想知道我应该为数组使用哪种MySql变量类型。我会将这个数组分解成一个ID列表,其中包括该玩家中的所有人。

示例MYSQL数据:

PlayerId -------- Mob //Lables

134 ------------- '23','59','12','53','801' //Values

然后使用PHP中的explode()将其展开为一堆包含该人员中玩家IDS的整数。

我希望mob字段具有无限的字符长度,以便玩家可以拥有HUGEE怪物。

我想我可以简单地使用longtextset类型,但我不完全确定。我发布游戏后我不希望任何错误,我希望我的方法保持清洁和正确。

非常感谢您花时间阅读本文,希望您能提供帮助。 :)

3 个答案:

答案 0 :(得分:5)

你应该创建一个将玩家与暴徒联系起来的表格:

 CREATE TABLE PlayerMobs (
   PlayerId INT UNSIGNED NOT NULL,
   MobId    INT UNSIGNED NOT NULL,
   FOREIGN KEY (PlayerID) REFERENCES Players (PlayerID),
   FOREIGN KEY (MobID)    REFERENCES Mobs    (MobID)
);

然后join根据需要在查询中使用其他表格。

我添加了FOREIGN KEY constraints以确保PlayerID表中仅存在有效的MobIDPlayerMobs值,但请注意,这些约束目前仅适用于{{ 1}}存储引擎。

答案 1 :(得分:0)

你可以尝试

 CREATE TABLE PlayerMobs (
 PlayerId INT UNSIGNED NOT NULL,
 MobId   Text UNSIGNED NOT NULL);

答案 2 :(得分:0)

我很久以前就这样做了,但在浏览我的帐户时碰巧遇到了这个问题。

没有任何具体的“暴徒”。你的“暴徒”基本上就像一个朋友列表。这不是一个团体。这只是一群与你有联系的人。

我相信我只是为“暴徒成员”做了一行,然后把其他玩家ID用逗号分隔,然后在PHP中我用逗号分隔字符串作为分隔符。