数据库结构化

时间:2013-10-16 16:06:56

标签: java php mysql sql bigdata

我正在考虑存储数据的最有效方法,优先考虑的是快速检索数据。

我有一组数据。让我们把它作为一个口袋妖怪卡

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

我正在考虑创建2个表来存储这样的数据

第一张表

此世界中存在的具有唯一ID的每张卡的属性

第二张表

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

总之,我正在考虑使用1个表来存储属性,另一个表来存储拥有该属性的卡。

有没有更好的方法来存储和检索数据。计划使用mysql。让我们来看看,因为最多只能有1亿张独特的卡

1 个答案:

答案 0 :(得分:3)

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

最有意义的是拥有3张牌桌:一张用于卡牌,另一张用于拥有牌桌。一个用于所有独特属性,然后是卡和属性之间的多对多表。

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

Cards
  id
  owner
  name

Properties
  id
  value
  foo
  bar

Cards2Properties
  card_id [fk]
  property_id [fk]