这个可能有点复杂。我搜索了类似的问题,但没有发现任何相关的问题。
让我从建立我的数据库结构开始。
我有几张表,但相关的如下:
现在,我将甲板列表存储为以cardid
逗号分隔的字符串。我意识到这是低效的,当我开始改进我的代码时,我将创建一个新表tcg_card_in_deck
,其中包含relationid
, cardid
, deckid
. 现在我的代码假定一个decklist
字符串。
我正在构建一个允许购买甲板的功能。为了给他们实际的卡片,我有以下查询(使用 PHP 生成,实际上大约有 50 个条目):
$db->query_write("INSERT INTO
`tcg_card`
(masterid, userid, foil)
VALUES
('159', '15', '0'),
('209', '15', '0'),
('209', '15', '0'),
('318', '15', '0')");
这部分很容易。我现在的问题是确保刚刚添加的卡片可以获取它们的 id 并将它们放在一个数组中(当前作为字符串输入,并在代码更新后作为单独表的条目)。如果它是一个条目,我可以使用LAST_INSERT_ID()
. 如果我做了 50 个单独的插入查询,我可以在每次迭代中获取 id 并将它们添加到数组中。但是因为这一切都是通过一个查询完成的,所以我不知道如何有效地找到正确的卡片放入套牌列表中。我想我可以在卡片表中添加一个日期线字段来指定获取日期,但这似乎很草率,如果用户在类似的时间范围内从交易或补充包中获得卡片,它可能会产生有缺陷的结果。
任何意见,将不胜感激!