2013-10-16 184 views
0

我正在考虑存储数据的最有效方式,优先级是快速检索数据。我有一组数据。以Pokemon卡为例数据库数据库结构

想象一下,在这个世界上,每张卡片都有自己的唯一ID,但每张卡片可能有重复的属性。

我想创建2表来存储存在于这个世界上有一个唯一的ID

第二台

这样的数据

1表

每张卡的性质

对于每个ID,它可以包含世界上所有卡的多行唯一ID。

综上所述,我想拥有1张表来存储属性,另一张表用来存储拥有该属性的卡片。

有没有更好的方法来存储和检索数据。计划使用MySQL。让我们把它作为最多只能有1亿个独特卡片

回答

3

所以你有卡片。卡片具有属性。有些卡具有相同的属性,我假设属性是复杂的实体,它们也有一些属性。

这将是最有意义的有3个表:一个卡和谁拥有它们。一个用于所有独特的属性,然后是卡片和属性之间的多对多表格。

您选择的查询有双JOIN。如果您将索引添加到所有表的主键,它应该超快。

Cards 
    id 
    owner 
    name 

Properties 
    id 
    value 
    foo 
    bar 

Cards2Properties 
    card_id [fk] 
    property_id [fk] 
+0

这个建议的好处是,您还可以在不更改模型的情况下添加新属性。 –