我正在考虑存储数据的最有效方法,优先考虑的是快速检索数据。
我有一组数据。让我们把它作为一个口袋妖怪卡
想象一下,在这个世界中,每张卡都有自己的唯一ID,但每张卡都有重复的属性。
我正在考虑创建2个表来存储这样的数据
第一张表
此世界中存在的具有唯一ID的每张卡的属性
第二张表
对于每个ID,它可以包含世界上所有卡的多行唯一ID。
总之,我正在考虑使用1个表来存储属性,另一个表来存储拥有该属性的卡。
有没有更好的方法来存储和检索数据。计划使用mysql。让我们来看看,因为最多只能有1亿张独特的卡
答案 0 :(得分:3)
所以你有卡片。卡片有属性。有些卡具有相同的属性,我认为属性是复杂的实体,它们也有一些属性。
最有意义的是拥有3张牌桌:一张用于卡牌,另一张用于拥有牌桌。一个用于所有独特属性,然后是卡和属性之间的多对多表。
您的选择查询有一个双JOIN。如果将索引添加到所有表的主键,则应该超快。
Cards
id
owner
name
Properties
id
value
foo
bar
Cards2Properties
card_id [fk]
property_id [fk]