Php 向MySQL添加数据列表
我有一些数据要添加到数据库中,我不确定我的表模式应该是什么。我有每个特定用户的id号,4个游戏类别,以及每个用户在每个游戏中可能拥有的项目数(0+)。我想为每个游戏设置一个表,其中包含类别->id和->项目,这样我就可以在表中保存用户id的列表,以及他们在该游戏中拥有的项目 我似乎无法让它工作,我想是因为每个用户的项目数量是动态的。我可以实现上面提到的表模式吗?为什么不/怎么做 我一直在努力:Php 向MySQL添加数据列表,php,mysql,Php,Mysql,我有一些数据要添加到数据库中,我不确定我的表模式应该是什么。我有每个特定用户的id号,4个游戏类别,以及每个用户在每个游戏中可能拥有的项目数(0+)。我想为每个游戏设置一个表,其中包含类别->id和->项目,这样我就可以在表中保存用户id的列表,以及他们在该游戏中拥有的项目 我似乎无法让它工作,我想是因为每个用户的项目数量是动态的。我可以实现上面提到的表模式吗?为什么不/怎么做 我一直在努力: foreach ($json->rgDescriptions as $mydata)
foreach ($json->rgDescriptions as $mydata)
{
$sql = $dbh->prepare('INSERT INTO user_items_tf2 (items) VALUES (:item) WHERE steam_id = :steamid');
$sql->bindParam(':item', $mydata->name);
$sql->bindParam(':steamid', $steamprofile['steamid']);
$sql->execute();
}
$sql=$dbh->prepare('INSERT INTO user\u items\u tf2(items,steam\u id)值(:item,:steamid)')
有很多方法可以做到这一点,但其中一个非常灵活,似乎可以回答你的问题将是这个
-- Players
CREATE TABLE player
(`id` int primary key auto_increment, `name` varchar(255))
;
-- Games
CREATE TABLE game
(`id` int primary key auto_increment, `name` varchar(255))
;
-- Items and what game they belong to
CREATE TABLE item
(`id` int primary key auto_increment, `game_id` int, `name` varchar(255))
;
-- What games players are playing
CREATE TABLE player_game
(`player_id` int, `game_id` int)
;
-- What items players have
CREATE TABLE player_item
(`player_id` int, `item_id` int, index(`player_id`))
;
如果您不需要询问哪些用户拥有给定的项目,您可以跳过player_item表,并使用blob类型将其项目的数据(例如JSON)填充到
player
表的一列中 您混合了两个insert
和udpate
查询。为什么不为用户创建一个表,一个用于游戏,一个用于项目,一个用于将用户链接到游戏的表,以及一个用于将用户游戏链接到项目的表呢。这样就形成了一对一的关系,很好也很好simple@scrowler我目前有一张供用户使用的表格,还有4张供4个游戏使用的表格,其中包含了每个游戏的所有可能项目。我不完全明白你的意思。我不知道如何让每个用户都有一个动态的项目列表。@Uchiha因为WHERE部分?但这仍然不能解决我的实际问题。请查看这些链接和。试着了解他们之间的差异