0

我正在将 Magic the Gathering 卡的信息存储在数据库中,我的疑问是如何存储并不总是存在的信息。

即生物有力量/韧性,而其他牌则没有。我应该为每张卡存储它并为没有它的卡留空吗?或创建另一个表来存储此信息,例如:

cardID power resist

这将如何影响查询时间?

4

1 回答 1

0

从规范化的角度来看,功率和电阻在功能上依赖于 cardID,因此应该与依赖于 cardID 的所有其他事物在同一张表上。如果我没记错魔法是如何工作的,你会有一张大表,其中包含一张卡片的所有特性的几列:功率、阻力、成本(我将其建模为 VARCHAR)、图片。然后,由于效果和卡片之间存在 1-N(或 MN,不记得)关系,您将有一个带有效果的额外表,它使用 cardID 作为外键(或者可能是一个调度表,如果它是MN)。

无论如何,我发现卡片只有4个字段+ ID,你不必担心太多,而是相当少。即使您想将成本建模为多个 INT,元素的数量也是有限的(5-6 个?)。具有 10 列甚至 20 列的表对于 DBMS 来说不是问题。也许您会在效果方面遇到更糟糕的情况(如果您打算实施它们)。

于 2013-08-13T20:11:56.507 回答